我正在尝试通过 ec2 用户数据脚本更新 EC2 实例的 AD OU(计算机对象)属性。我看到
"Message: The errors from user data script: Set-AdComputer : Insufficient access rights to perform the operation"
这对我来说没有意义,因为用户数据以根权限/管理员级别权限运行,对吗?有什么见解吗?下面是来自Ec2UserDataExecution.log
的专家
2023/04/26 05:44:11Z: <powershell> tag was provided.. running powershell content
2023/04/26 05:44:14Z: Message: The errors from user data script: Set-AdComputer : Insufficient access rights to perform the operation
At
C:\Windows\system32\config\systemprofile\AppData\Local\Temp\Amazon\EC2-Windows\Launch\InvokeUserData\UserScript.ps1:27
char:2
+ Set-AdComputer -Identity $Hostname -Description "XXXXX ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (XXXXXX:ADComputer) [Set-ADComputer], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8344,Microsoft.ActiveDirectory.Management.Commands.SetADComputer
2023/04/26 05:44:14Z: Message: The output from user data script:
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No NoChangeNeeded {}
通过 ec2 用户数据脚本更新 EC2 实例的 AD OU(计算机对象)属性 - windows
对于需要域管理员权限的用户数据命令,我将相关域帐户的凭证存储在 AWS 密钥中,并在脚本中将其拉下来:
# Pull required username and password from AWS Secrets
$UsernameAndPasswordForPrivilegedAccount = ConvertFrom-Json -InputObject (Get-SECSecretValue -SecretId arn:aws:secretsmanager:us-east-1:<AWS Account Number>:secret:<AWS Secret Name>).SecretString
$CredentialsForPrivilegedAccount = (New-Object PSCredential($UsernameAndPasswordForPrivilegedAccount.UserName, (ConvertTo-SecureString $UsernameAndPasswordForPrivilegedAccount.Password -AsPlainText -Force)))
# Use credential with the command
Set-AdComputer -Credential $CredentialsForPrivilegedAccount -Identity $Hostname -Description "XXXXX ...
在 AWS Secrets 中,通过以下方式保存用户名和密码:(a) 选择“存储新密钥”,(b) 选择“其他类型的密钥”,以及 (c) 创建两个键/值对,其中包含“用户名”一词和“密码”作为键:
Key/value Secret value
username <MYDOMAIN\myprivilegedusername>
password <mypassword>
对于提取凭证的命令,您需要在运行用户数据脚本的计算机上安装适用于 PowerShell 的 AWS 工具,并将 AWS 的 DNS 服务器作为其 DNS 服务器之一(如果您的计算机是默认的,则默认为该服务器) VPC 使用带有默认选项的 DHCP 选项集。)