Buat SecureString parameter 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 dan bergabung dengan node ke Domain (PowerShell)

Panduan ini menunjukkan cara menggabungkan 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 server DNS di opsi DHCP yang terkait dengan Amazon VPC Anda. Untuk informasi, lihat Bekerja dengan Rangkaian Opsi DHCP dalam Panduan Pengguna Amazon VPC.

Untuk membuat SecureString parameter dan bergabung dengan node ke domain
  1. Masukkan parameter ke dalam sistem menggunakanAWS Tools for Windows PowerShell.

    Dalam perintah berikut, ganti setiap placeholder input pengguna 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 ini ke izin IAM role untuk node Anda:

    • AmazonSSM ManagedInstanceCore - Diperlukan. Kebijakan AWS terkelola ini memungkinkan node untuk menggunakan fungsi inti layanan Systems Manager.

    • AmazonSSM DirectoryServiceAccess - Diperlukan. Kebijakan AWS terkelola ini memungkinkan SSM Agent untuk mengakses AWS Directory Service atas nama Anda untuk meminta bergabung dengan domain oleh node terkelola.

    • untuk 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 untuk Run Command perintah atau Session Manager sesi ke bucket S3, lalu menggunakan 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 Amazon Simple Storage Service.

    • CloudWatchAgentServerPolicy – Opsional. Kebijakan AWS terkelola ini memungkinkan Anda untuk menjalankan CloudWatch agen pada node terkelola. Kebijakan ini memungkinkan untuk membaca informasi pada sebuah node dan menuliskannya ke AmazonCloudWatch. 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 Amazon CloudWatch Logs.

  3. Ubah IAM role yang dilampirkan ke node dan tambahkan kebijakan berikut. Kebijakan 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 dokumen SSM 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.