Creare un parametro SecureString e aggiungere nodo a un dominio (PowerShell) - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creare un parametro SecureString e aggiungere nodo a un dominio (PowerShell)

In questa spiegazione passo per passo viene descritto come aggiungere un nodo Windows Server a un dominio utilizzando i parametri AWS Systems Manager SecureString e Run Command. La procedura guidata utilizza i parametri di dominio standard, ad esempio il nome di dominio e un nome utente di dominio. Questi valori vengono passati come valori di stringa non criptati. La password del dominio viene crittografata con una Chiave gestita da AWS e viene passata come una stringa crittografata.

Prerequisiti

In questa procedura guidata si presuppone che siano già stati specificati il nome di dominio e l'indirizzo IP del server DNS nel set di opzioni DHCP associato ad Amazon VPC. Per ulteriori informazioni, consulta Utilizzo dei set di opzioni DHCP nella Guida utente Amazon VPC.

Per creare un parametro SecureString e aggiungere un nodo a un dominio
  1. Immettere i parametri nel sistema utilizzando AWS Tools for Windows PowerShell.

    Nei comandi seguenti, sostituisci ogni segnaposto dell'input utente con le tue informazioni.

    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
    Importante

    Solo il valore di un parametro SecureString viene crittografato. I nomi dei parametri, le descrizioni e altre proprietà non sono crittografati.

  2. Collega le seguenti policy (IAM) AWS Identity and Access Management per le autorizzazioni del ruolo IAM per il nodo:

    • AmazonSSMManagedInstanceCore - Obbligatoria. Questa policy gestita AWS consente a un nodo gestito di usare la funzionalità principale del servizio Systems Manager.

    • AmazonSSMDirectoryServiceAccess - Obbligatoria. Questa policy gestita AWS consente a SSM Agent di accedere a AWS Directory Service per conto dell'utente per le richieste di aggiunta al dominio da parte del nodo gestito.

    • Una policy personalizzata per l'accesso ai bucket S3 - Obbligatoria. SSM Agent, che si trova sul nodo dell'utente ed esegue le attività Systems Manager, richiede l'accesso a specifici bucket Amazon Simple Storage Service (Amazon S3) di proprietà di Amazon. Nella policy di bucket S3 creata, fornire anche l'accesso ai bucket S3 personali necessari per le operazioni di Systems Manager.

      Esempi: è possibile scrivere l'output per i comandiRun Command o le sessioni Session Manager in un bucket S3 e quindi utilizzare questo output più tardi per l'audit o la risoluzione dei problemi. È possibile archiviare gli script di accesso o gli elenchi delle basi di patch personalizzati in un bucket S3 e quindi fare riferimento allo script o all'elenco quando si esegue un comando oppure quando viene applicata una base di patch.

      Per ulteriori informazioni su come creare una policy personalizzata per l'accesso ai bucket Amazon S3, consulta Create a custom S3 bucket policy for an instance profile (Creare una policy del bucket S3 personalizzata per un profilo dell'istanza)

      Nota

      La memorizzazione dei log di output in un bucket S3 è facoltativa ma, se si è deciso di utilizzarla, si consiglia di impostarla all'inizio del processo di configurazione di Systems Manager. Per ulteriori informazioni, consulta Create a Bucket (Creazione di un bucket) nella Guida per l'utente di Amazon Simple Storage Service.

    • CloudWatchAgentServerPolicy - Facoltativa. Questa policy gestita AWS consente di eseguire l'agente CloudWatch su nodi gestiti. Questa policy consente di leggere e scrivere le informazioni su un nodo in Amazon CloudWatch. Il profilo dell'istanza necessita di questa policy solo se si utilizzano servizi quali Amazon EventBridge o CloudWatch Logs.

      Nota

      L'utilizzo delle funzionalità di EventBridge e CloudWatch è facoltativo, ma, se si intende utilizzarle, è consigliabile impostarle all'inizio del processo di configurazione di Systems Manager. Per ulteriori informazioni, consultare la Guida per l'utente di Amazon EventBridge e la Guida per l'utente di Amazon CloudWatch Logs.

  3. Modificare il ruolo IAM associato al nodo e aggiungere la policy seguente. Questa policy fornisce al nodo le autorizzazioni per chiamare kms:Decrypt e l'API ssm:CreateDocument.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "ssm:CreateDocument" ], "Resource": [ "arn:aws:kms:region:account-id:key/kms-key-id" ] } ] }
  4. Copiare e incollare il seguente elemento json di testo in un editor di testo e salvare il file come JoinInstanceToDomain.json nella seguente posizione: 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. Eseguire questo comando in Tools for Windows PowerShell per creare un nuovo documento SSM.

    $json = Get-Content C:\temp\JoinInstanceToDomain | Out-String New-SSMDocument -Name JoinInstanceToDomain -Content $json -DocumentType Command
  6. Eseguire il comando seguente in Tools for Windows PowerShell per collegare il nodo al dominio.

    Send-SSMCommand -InstanceId instance-id -DocumentName JoinInstanceToDomain

    Se il comando viene eseguito correttamente, il sistema restituisce informazioni simili alle seguenti.

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

    Se il comando non viene eseguito correttamente, il sistema restituisce informazioni simili alle seguenti.

    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.