AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

演练:创建安全字符串参数并将实例加入到域 (PowerShell)

本演练介绍如何使用 Systems Manager 安全字符串参数和 Run Command 将 Windows 实例加入到域中。演练中使用了典型的域参数,如域名和域用户名。这些值作为未加密的字符串值传递。将使用 AWS 托管客户主秘钥 (CMK) 加密域密码并将其作为安全字符串传递。

先决条件

此演练假定您已在与您的 Amazon VPC 关联的 DHCP 选项集中指定了域名和 DNS 服务器 IP 地址。有关信息,请参阅 Amazon VPC User Guide 中的使用 DHCP 选项集

创建安全字符串参数并将实例加入域

  1. 使用 AWS Tools for Windows PowerShell 将参数输入到系统中。

    Write-SSMParameter -Name "domainName" -Value "DOMAIN-NAME" -Type String -Tier Standard Write-SSMParameter -Name "domainJoinUserName" -Value "DOMAIN\USERNAME" -Type String -Tier Standard Write-SSMParameter -Name "domainJoinPassword" -Value "PASSWORD" -Type SecureString -Tier Standard

    重要

    仅为安全字符串参数的 加密。参数的名称、描述和其他属性不会被加密。

  2. AmazonEC2RoleforSSM 托管策略附加到您的实例的 IAM 角色权限。有关信息,请参阅 IAM User Guide 中的托管策略与内联策略

  3. 编辑附加到实例的 IAM 角色并添加以下策略。此策略授予实例调用 kms:Decrypt API 的权限。

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "kms:Decrypt" ], "Resource":[ "arn:aws:kms:region:account-id:key/key-id" ] } ] }
  4. 复制以下 json 示例并粘贴到简单文本编辑器中,并将文件保存为以下位置中的 JoinInstanceToDomain.json:c:\temp\JoinInstanceToDomain.json

    { "schemaVersion": "2.2", "description": "Run a PowerShell script to securely domain-join a Windows instance", "mainSteps": [ { "action": "aws:runPowerShellScript", "name": "runPowerShellWithSecureString", "precondition": { "StringEquals": [ "platformType", "Windows" ] }, "inputs": { "runCommand": [ "$domain = (Get-SSMParameterValue -Name domainName).Parameters[0].Value", "$username = (Get-SSMParameterValue -Name domainJoinUserName).Parameters[0].Value", "$password = (Get-SSMParameterValue -Name domainJoinPassword -WithDecryption $True).Parameters[0].Value | ConvertTo-SecureString -asPlainText -Force", "$credential = New-Object System.Management.Automation.PSCredential($username,$password)", "Add-Computer -DomainName $domain -Credential $credential -ErrorAction Stop", "Restart-Computer -force" ] } } ] }
  5. 在 AWS Tools for Windows PowerShell 中运行以下命令来创建新 SSM 文档。

    $json = Get-Content C:\temp\JoinInstanceToDomain | Out-String New-SSMDocument -Name JoinInstanceToDomain -Content $json -DocumentType Command
  6. 在 AWS Tools for Windows PowerShell 中运行以下命令将实例加入到域

    Send-SSMCommand -InstanceId instance-id -DocumentName JoinInstanceToDomain