Einen SecureString Parameter erstellen in Parameter Store und Verbinden eines Knotens mit einer Domain (PowerShell) - AWS Systems Manager

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 erstellen in Parameter Store und Verbinden eines Knotens mit einer Domain (PowerShell)

Diese exemplarische Vorgehensweise zeigt, wie Sie einem beitreten Windows Server Knoten zu einer Domäne unter Verwendung von AWS Systems Manager SecureString Parametern und Run Command. In der exemplarischen Vorgehensweise werden typische Domänenparameter wie der Domänenname und ein Domänenbenutzername verwendet. 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 Domänennamen und die DNS Server-IP-Adresse in der DHCP Optionsliste, die Ihrem Amazon VPC zugeordnet ist, bereits angegeben haben. Weitere Informationen finden Sie unter Arbeiten mit DHCP Optionssätzen im VPCAmazon-Benutzerhandbuch.

So erstellen Sie einen SecureString-Parameter und verknüpfen einen Knoten mit einer Domain
  1. Geben Sie die Parameter in das System ein AWS Tools for Windows PowerShell.

    Ersetzen Sie in den folgenden Befehlen user input placeholder mit Ihren eigenen Daten.

    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 SecureString
    Wichtig

    Nur der Wert eines SecureString-Parameters wird verschlüsselt. Der Name des Parameters, die Beschreibung und andere Eigenschaften sind nicht verschlüsselt.

  2. Hängen Sie die folgenden AWS Identity and Access Management (IAM) Richtlinien an die IAM Rollenberechtigungen für Ihren Knoten an:

    • A mazonSSMManaged InstanceCore — Erforderlich. Diese AWS -verwaltete Richtlinie erlaubt es einem verwalteten Knoten, Systems Manager Manager-Service-Kernfunktionalität zu verwenden.

    • A mazonSSMDirectory ServiceAccess — Erforderlich. Diese AWS verwaltete Richtlinie ermöglicht SSM Agent um in Ihrem Namen Zugriff AWS Directory Service auf für Anfragen zum Beitritt zur Domain von dem verwalteten Knoten.

    • Eine benutzerdefinierte Richtlinie für S3-Bucket-Zugriff — Erforderlich. SSM Agent, das sich auf Ihrem Knoten befindet und Systems-Manager-Aufgaben ausführt, Simple Storage Service (Amazon S3) Amazon-owned 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 Ausgaben schreiben für Run Command Befehle oder Session Manager Sitzungen in einem S3-Bucket und verwenden Sie diese Ausgabe später für Auditing-Zwecke oder Fehlerbehebung. 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— Fakultativ. Diese AWS -verwaltete Richtlinie erlaubt es Ihnen, den CloudWatch Agenten auf verwalteten Knoten auszuführen. Diese Richtlinie ermöglicht es, Informationen auf einem Knoten zu lesen und sie an Amazon zu schreiben CloudWatch. Ihr Instance-Profil benötigt diese Richtlinie nur, wenn Sie Services wie Amazon EventBridge oder CloudWatch Logs verwenden.

      Anmerkung

      Die Verwendung von CloudWatch EventBridge und ist optional. Es wird aber empfohlen, sie am Anfang Ihres 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.

  3. Bearbeiten Sie die IAM Rolle, die dem Knoten zugeordnet ist, und fügen Sie die folgende Richtlinie hinzu. Diese Richtlinie erteilt dem Knoten die Berechtigungen, kms:Decrypt und die aufzurufen ssm:CreateDocumentAPI.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "ssm:CreateDocument" ], "Resource": [ "arn:aws:kms:region:account-id:key/kms-key-id" ] } ] }
  4. 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 }" ] } } ] }
  5. 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
  6. Führen Sie den folgenden Befehl in Tools für Windows aus PowerShell , um den Knoten mit der Domäne zu verknüpfen.

    Send-SSMCommand -InstanceId instance-id -DocumentName JoinInstanceToDomain

    Wenn 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.