Créez un SecureString paramètre dans Parameter Store et joignez un nœud à un domaine (PowerShell) - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez un SecureString paramètre dans Parameter Store et joignez un nœud à un domaine (PowerShell)

Cette procédure pas à pas montre comment rejoindre un Windows Server nœud vers un domaine à l'aide de AWS Systems Manager SecureString paramètres et Run Command. La procédure pas à pas utilise des paramètres de domaine typiques, tels que le nom de domaine et le nom d'utilisateur du domaine. Ces valeurs sont transmises sous forme de valeurs de chaîne non chiffrées. Le mot de passe du domaine est chiffré à l'aide d'une Clé gérée par AWS et transmise en tant que chaîne chiffrée.

Prérequis

Cette procédure pas à pas suppose que vous avez déjà spécifié votre nom de domaine et l'adresse IP du DNS serveur dans le jeu d'DHCPoptions associé à votre AmazonVPC. Pour plus d'informations, consultez la section Travailler avec des ensembles DHCP d'options dans le guide de VPC l'utilisateur Amazon.

Pour créer un paramètre SecureString et associer un nœud à un domaine
  1. Entrez les paramètres dans le système à l'aide de AWS Tools for Windows PowerShell.

    Dans les commandes suivantes, remplacez chaque user input placeholder avec vos propres informations.

    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
    Important

    Seule la valeur d'un paramètre SecureString est chiffrée. Les noms de paramètres, les descriptions et d'autres propriétés ne sont pas chiffrés.

  2. Associez les politiques suivantes AWS Identity and Access Management (IAM) aux autorisations de IAM rôle pour votre nœud :

    • A mazonSSMManaged InstanceCore — Obligatoire. Cette politique AWS gérée permet à un nœud géré d'utiliser les fonctionnalités principales du service Systems Manager.

    • A mazonSSMDirectory ServiceAccess — Obligatoire. Cette politique AWS gérée permet SSM Agent pour accéder AWS Directory Service en votre nom aux demandes d'adhésion au domaine par le nœud géré.

    • Une politique personnalisée pour l'accès au compartiment S3 — Nécessaire. SSM Agent, qui se trouve sur votre nœud et exécute les tâches de Systems Manager, nécessite l'accès à des compartiments Amazon Simple Storage Service (Amazon S3) spécifiques appartenant à Amazon. Dans la politique de compartiment S3 personnalisée que vous créez, vous pouvez également fournir l'accès à vos propres compartiments S3 qui sont nécessaires pour les opérations Systems Manager.

      Exemples : Vous pouvez écrire une sortie pour Run Command commandes ou Session Manager sessions vers un compartiment S3, puis utilisez cette sortie ultérieurement pour un audit ou un dépannage. Vous stockez des scripts d'accès ou des listes de références de correctifs personnalisées dans un compartiment S3, puis vous faites référence au script ou à la liste lorsque vous exécutez une commande, ou lorsqu'un référentiel de correctifs est appliquée.

      Pour obtenir des informations sur la création d'une politique personnalisée pour l'accès à un compartiment Amazon S3, veuillez consulter Créer une politique de compartiment S3 personnalisée pour un profil d'instance

      Note

      L'enregistrement des données de journal de sortie dans un compartiment S3 est facultatif, mais nous vous recommandons de le configurer au début de votre processus de configuration de Systems Manager si vous avez décidé d'utiliser. Pour plus d'informations, consultez Création d'un compartiment dans le Guide de l'utilisateur Amazon Simple Storage Service.

    • CloudWatchAgentServerPolicy— Facultatif. Cette politique AWS gérée vous permet d'exécuter l' CloudWatch agent sur des nœuds gérés. Cette politique permet de lire des informations sur un nœud et de les écrire sur Amazon CloudWatch. Votre profil d'instance a besoin de cette politique uniquement si vous utilisez des services tels qu'Amazon EventBridge ou CloudWatch Logs.

      Note

      L'utilisation CloudWatch et les EventBridge fonctionnalités sont facultatives, mais nous vous recommandons de les configurer au début du processus de configuration de Systems Manager si vous avez décidé de les utiliser. Pour plus d'informations, consultez le guide de EventBridge l'utilisateur Amazon et le guide de l'utilisateur Amazon CloudWatch Logs.

  3. Modifiez le IAM rôle attaché au nœud et ajoutez la politique suivante. Cette politique autorise le nœud à appeler le kms:Decrypt et le 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. Copiez et collez l'exemple json suivant dans un éditeur de texte simple et enregistrez le fichier en tant que JoinInstanceToDomain.json à l'emplacement suivant : 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. Exécutez la commande suivante dans Outils pour Windows PowerShell pour créer un nouveau SSM document.

    $json = Get-Content C:\temp\JoinInstanceToDomain | Out-String New-SSMDocument -Name JoinInstanceToDomain -Content $json -DocumentType Command
  6. Exécutez la commande suivante dans Outils PowerShell pour Windows pour joindre le nœud au domaine.

    Send-SSMCommand -InstanceId instance-id -DocumentName JoinInstanceToDomain

    Si la commande aboutit, le système renvoie des informations similaires à ce qui suit.

    WARNING: The changes will take effect after you restart the computer EC2ABCD-EXAMPLE.
    Domain join succeeded, restarting
    Computer is part of example.local, exiting

    Si la commande échoue, le système renvoie des informations similaires à ce qui suit.

    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.