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

Membuat 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. Panduan ini menggunakan parameter domain biasa, 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 sudah menentukan nama domain dan alamat IP DNS server di 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.

    Pada 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 yang AWS dikelola ini memungkinkan node untuk menggunakan fungsi inti layanan Systems Manager.

    • A mazonSSMDirectory ServiceAccess - Diperlukan. Kebijakan AWS terkelola ini memungkinkan SSM Agent untuk mengakses AWS Directory Service atas nama Anda untuk meminta bergabung dengan domain berdasarkan 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) tertentu yang dimiliki 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 output 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 yang AWS dikelola ini memungkinkan Anda untuk menjalankan CloudWatch agen di node terkelola. Kebijakan ini memungkinkan untuk membaca informasi pada sebuah node dan menuliskannya ke Amazon CloudWatch. Profil instans Anda memerlukan kebijakan ini hanya jika Anda menggunakan layanan seperti Amazon EventBridge atau CloudWatch Logs.

      catatan

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

  3. Ubah 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 ini 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 ini di Tools for Windows PowerShell untuk menggabungkan 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.