Buat SecureString parameter di Parameter Store dan bergabung dengan node ke Domain (PowerShell) - AWS Systems Manager

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat SecureString parameter di Parameter Store dan bergabung dengan node ke Domain (PowerShell)

Panduan ini menunjukkan cara bergabung dengan Windows Server node ke domain menggunakan AWS Systems Manager SecureString parameter dan Run Command. Walkthrough menggunakan parameter domain yang khas, seperti nama domain dan nama pengguna domain. Nilai-nilai ini diteruskan sebagai nilai string tidak terenkripsi. Kata sandi domain dienkripsi menggunakan Kunci yang dikelola AWS dan diteruskan sebagai string terenkripsi.

Prasyarat

Panduan ini mengasumsikan bahwa Anda telah menentukan nama domain dan alamat IP DNS server Anda dalam kumpulan DHCP opsi yang terkait dengan Amazon Anda. VPC Untuk selengkapnya, lihat Bekerja dengan Set DHCP Opsi di Panduan VPC Pengguna Amazon.

Untuk membuat SecureString parameter dan menggabungkan node ke domain
  1. Masukkan parameter ke dalam sistem menggunakan AWS Tools for Windows PowerShell.

    Dalam perintah berikut, ganti masing-masing user input placeholder dengan informasi Anda sendiri.

    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
    penting

    Hanya nilai dari parameter SecureString yang dienkripsi. Nama parameter, deskripsi, dan properti lainnya tidak dienkripsi.

  2. Lampirkan kebijakan AWS Identity and Access Management (IAM) berikut ke izin IAM peran untuk node Anda:

    • A mazonSSMManaged InstanceCore - Diperlukan. Kebijakan AWS terkelola ini memungkinkan node terkelola untuk menggunakan fungsionalitas inti layanan Systems Manager.

    • A mazonSSMDirectory ServiceAccess - Diperlukan. Kebijakan AWS terkelola ini memungkinkan SSM Agent untuk mengakses AWS Directory Service atas nama Anda untuk permintaan untuk bergabung dengan domain oleh node terkelola.

    • Kebijakan kustom untuk akses bucket S3 – Wajib. SSM Agent, yang ada di node Anda dan melakukan tugas Systems Manager, memerlukan akses ke bucket Amazon Simple Storage Service (Amazon S3) khusus milik Amazon. Dalam kebijakan kustom bucket S3 yang Anda buat, Anda juga menyediakan akses ke bucket S3 Anda sendiri yang diperlukan untuk operasi Systems Manager.

      Contoh: Anda dapat menulis output untuk Run Command perintah atau Session Manager sesi ke bucket S3, lalu gunakan keluaran ini nanti untuk audit atau pemecahan masalah. Anda menyimpan script akses atau daftar dasar patch kustom dalam bucket S3, lalu mereferensi script atau daftar tersebut ketika Anda menjalankan sebuah perintah, atau ketika dasar patch diterapkan.

      Untuk informasi tentang membuat kebijakan kustom untuk akses bucket Amazon S3, lihat Membuat kebijakan bucket S3 kustom untuk profil instans

      catatan

      Menyimpan data log output dalam bucket S3 bersifat opsional, namun kami merekomendasikan untuk mengaturnya di awal proses konfigurasi Systems Manager jika Anda memutuskan untuk menggunakannya. Untuk informasi selengkapnya, lihat Membuat Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

    • CloudWatchAgentServerPolicy— Opsional. Kebijakan AWS terkelola ini memungkinkan Anda menjalankan CloudWatch agen pada node terkelola. Kebijakan ini memungkinkan untuk membaca informasi pada node dan menuliskannya ke Amazon CloudWatch. Profil instans Anda memerlukan kebijakan ini hanya jika Anda menggunakan layanan seperti Amazon EventBridge atau CloudWatch Log.

      catatan

      Menggunakan CloudWatch dan EventBridge fitur adalah opsional, tetapi kami sarankan untuk mengaturnya di awal proses konfigurasi Systems Manager Anda jika Anda telah memutuskan untuk menggunakannya. Untuk informasi selengkapnya, lihat Panduan EventBridge Pengguna Amazon dan Panduan Pengguna CloudWatch Log Amazon.

  3. Edit IAM peran yang dilampirkan ke node dan tambahkan kebijakan berikut. Kebijakan ini memberikan izin node untuk memanggil kms:Decrypt dan. ssm:CreateDocument API

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "ssm:CreateDocument" ], "Resource": [ "arn:aws:kms:region:account-id:key/kms-key-id" ] } ] }
  4. Salin dan tempel teks json berikut ini ke editor teks dan simpan file sebagai JoinInstanceToDomain.json di lokasi berikut: 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. Jalankan perintah berikut di Tools for Windows PowerShell untuk membuat SSM dokumen baru.

    $json = Get-Content C:\temp\JoinInstanceToDomain | Out-String New-SSMDocument -Name JoinInstanceToDomain -Content $json -DocumentType Command
  6. Jalankan perintah berikut di Tools for Windows PowerShell untuk bergabung dengan node ke domain.

    Send-SSMCommand -InstanceId instance-id -DocumentName JoinInstanceToDomain

    Jika perintah berhasil, sistem mengembalikan informasi seperti berikut ini.

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

    Jika perintah gagal, sistem mengembalikan informasi seperti berikut ini.

    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.