Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einen SecureString Parameter in einer Domain erstellen Parameter Store und einen Knoten mit einer Domain verbinden (PowerShell)
Diese exemplarische Vorgehensweise zeigt, wie Sie mithilfe der AWS Systems Manager
SecureString
Parameter und Run Command einen Windows Server Knoten mit einer Domäne verbinden. In der Anleitung werden typische Domain-Parameter verwendet, z. B. der Domain-Name und ein Benutzername für die Domain. Diese Werte werden als unverschlüsselte Zeichenfolgen weitergegeben. Das Passwort für die Domain wird unter Verwendung eines Von AWS verwalteter Schlüssel verschlüsselt und als verschlüsselte Zeichenfolge übergeben.
Voraussetzungen
In dieser Anleitung wird davon ausgegangen, dass Sie Ihren Domain-Namen und die DNS-Server-IP-Adresse in der DHCP-Optionsliste, die Ihrer Amazon VPC zugeordnet ist, bereits angegeben haben. Informationen finden Sie unter Arbeiten mit DHCP-Optionslisten im Amazon VPC-Benutzerhandbuch.
So erstellen Sie einen SecureString
-Parameter und verknüpfen einen Knoten mit einer Domain
-
Geben Sie Parameter in das System ein mit AWS Tools for Windows PowerShell.
Ersetzen Sie in den folgenden Befehlen jeden Befehl
user input placeholder
durch Ihre eigenen Informationen.Write-SSMParameter -Name "
domainName
" -Value "DOMAIN-NAME
" -Type String Write-SSMParameter -Name "domainJoinUserName
" -Value "DOMAIN\USERNAME
" -Type String Write-SSMParameter -Name "domainJoinPassword
" -Value "PASSWORD
" -Type SecureStringWichtig
Nur der Wert eines
SecureString
-Parameters wird verschlüsselt. Der Name des Parameters, die Beschreibung und andere Eigenschaften sind nicht verschlüsselt. -
Fügen Sie den IAM-Rollenberechtigungen für Ihren Knoten die folgenden AWS Identity and Access Management (IAM-) Richtlinien hinzu:
-
Amazon SSMManaged InstanceCore — Erforderlich. Diese AWS verwaltete Richtlinie ermöglicht es einem verwalteten Knoten, die Kernfunktionen des Systems Manager Manager-Dienstes zu verwenden.
-
Amazon SSMDirectory ServiceAccess — Erforderlich. Diese AWS verwaltete Richtlinie ermöglicht den SSM Agent Zugriff in Ihrem Namen AWS Directory Service auf Anfragen zum Beitritt zur Domain durch den verwalteten Knoten.
-
Eine benutzerdefinierte Richtlinie für S3-Bucket-Zugriff – Erforderlich. SSM Agent, der sich auf Ihrem Knoten befindet und Systems-Manager-Aufgaben ausführt, erfordert Zugriff auf bestimmte Amazon Simple Storage Service (Amazon S3)-Buckets im Besitz von Amazon. In der benutzerdefinierten S3-Bucket-Richtlinie, die Sie erstellen, können Sie auch Zugriff auf Ihre eigenen S3-Buckets gewähren, die für Systems Manager-Operationen benötigt werden.
Beispiele: Sie können Ausgabe für Run Command-Befehle oder Session Manager-Sitzungen in einen S3-Bucket schreiben und diese Ausgabe dann zu einem späteren Zeitpunkt für Auditing-Zwecke oder zur Fehlerbehebung nutzen. Sie speichern Zugriffsskripts oder benutzerdefinierte Patch-Baseline-Listen in einem S3-Bucket und verweisen dann auf das Skript oder die Liste, wenn Sie einen Befehl ausführen oder wenn eine Patch-Baseline angewendet wird.
Weitere Informationen zum Erstellen einer benutzerdefinierten Richtlinie für den Zugriff auf einen Amazon S3-Bucket finden Sie unter Erstellen einer benutzerdefinierten S3-Bucket-Richtlinie für ein Instance-Profil
Anmerkung
Die Speicherung von Ausgabeprotokolldaten in einem S3-Bucket ist optional. Wenn Sie sich jedoch hierzu entschlossen haben, sollte die Funktion zu Beginn des Systems Manager-Konfigurationsprozesses eingerichtet werden. Weitere Informationen finden Sie unter Erstellen eines Buckets im Benutzerhandbuch zu Amazon Simple Storage Service.
-
CloudWatchAgentServerPolicy – Optional. Diese AWS verwaltete Richtlinie ermöglicht es Ihnen, den CloudWatch Agenten auf verwalteten Knoten auszuführen. Diese Richtlinie ermöglicht es, Informationen auf einem Knoten zu lesen und an Amazon zu schreiben CloudWatch. Ihr Instance-Profil benötigt diese Richtlinie nur, wenn Sie Dienste wie Amazon EventBridge oder CloudWatch Logs verwenden.
Anmerkung
Die Verwendung CloudWatch der EventBridge Funktionen ist optional, wir empfehlen jedoch, sie zu Beginn des Systems Manager Manager-Konfigurationsprozesses einzurichten, wenn Sie sich für deren Verwendung entschieden haben. Weitere Informationen finden Sie im EventBridge Amazon-Benutzerhandbuch und im Amazon CloudWatch Logs-Benutzerhandbuch.
-
-
Bearbeiten Sie die IAM-Rolle, die dem Knoten zugeordnet ist, und fügen Sie die folgende Richtlinie hinzu. Diese Richtlinie erteilt dem Knoten Berechtigungen, um die
kms:Decrypt
- undssm:CreateDocument
-API aufrufen zu können.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "ssm:CreateDocument" ], "Resource": [ "arn:aws:kms:
region
:account-id
:key/kms-key-id
" ] } ] } -
Kopieren Sie den folgenden JSON-Text in einen Texteditor und speichern Sie die Datei unter dem Namen
JoinInstanceToDomain.json
am folgenden Speicherort:c:\temp\JoinInstanceToDomain.json
.{ "schemaVersion": "2.2", "description": "Run a PowerShell script to securely join a Windows Server instance to a domain", "mainSteps": [ { "action": "aws:runPowerShellScript", "name": "runPowerShellWithSecureString", "precondition": { "StringEquals": [ "platformType", "Windows" ] }, "inputs": { "runCommand": [ "$domain = (Get-SSMParameterValue -Name domainName).Parameters[0].Value", "if ((gwmi Win32_ComputerSystem).domain -eq $domain){write-host \"Computer is part of $domain, exiting\"; exit 0}", "$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 SilentlyContinue -ErrorVariable domainjoinerror", "if($?){Write-Host \"Instance joined to domain successfully. Restarting\"; exit 3010}else{Write-Host \"Instance failed to join domain with error:\" $domainjoinerror; exit 1 }" ] } } ] }
-
Führen Sie den folgenden Befehl in Tools für Windows aus PowerShell , um ein neues SSM-Dokument zu erstellen.
$json = Get-Content C:\temp\JoinInstanceToDomain | Out-String New-SSMDocument -Name JoinInstanceToDomain -Content $json -DocumentType Command
-
Führen Sie den folgenden Befehl in Tools für Windows aus PowerShell , um den Knoten mit der Domäne zu verbinden.
Send-SSMCommand -InstanceId
instance-id
-DocumentName JoinInstanceToDomainWenn der Befehl erfolgreich ausgeführt wurde, sieht das Ergebnis im System in etwa wie folgt aus:
WARNING: The changes will take effect after you restart the computer EC2ABCD-EXAMPLE. Domain join succeeded, restarting Computer is part of example.local, exiting
Wenn der Befehl nicht erfolgreich ausgeführt wurde, sieht das Ergebnis im System in etwa wie folgt aus:
Failed to join domain with error: Computer 'EC2ABCD-EXAMPLE' failed to join domain 'example.local' from its current workgroup 'WORKGROUP' with following error message: The specified domain either does not exist or could not be contacted.