Pelajari cara menggunakan GMSAs untuk wadah Windows EC2 untuk Amazon ECS - Amazon Elastic Container Service

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

Pelajari cara menggunakan GMSAs untuk wadah Windows EC2 untuk Amazon ECS

Amazon ECS mendukung otentikasi Active Directory untuk wadah Windows melalui jenis akun layanan khusus yang disebut grup Akun Layanan Terkelola (GMSA).

Aplikasi jaringan berbasis Windows seperti aplikasi NET sering menggunakan Direktori Aktif untuk memfasilitasi autentikasi dan otorisasi manajemen antara pengguna dan layanan. Developer umumnya merancang aplikasi mereka untuk mengintegrasikan dengan Direktori Aktif dan berjalan pada server yang bergabung dengan domain untuk tujuan ini. Karena kontainer Windows tidak dapat bergabung dengan domain, Anda harus mengonfigurasi kontainer Windows untuk berjalan dengan gMSA.

Wadah Windows yang berjalan dengan GMSA bergantung pada instans Amazon EC2 hostnya untuk mengambil kredenal GMSA dari pengontrol domain Active Directory dan menyediakannya ke instance container. Untuk informasi selengkapnya, lihat Membuat gMSA untuk kontainer Windows.

catatan

Fitur ini tidak didukung pada wadah Windows di Fargate.

Pertimbangan

Hal berikut ini harus dipertimbangkan ketika menggunakan gMSA untuk kontainer Windows:

  • Saat menggunakan AMI Penuh Windows Server 2016 yang dioptimalkan Amazon ECS untuk instance container Anda, nama host container harus sama dengan nama akun GMSA yang ditentukan dalam file spesifikasi kredenal. Untuk menentukan hostname untuk kontainer, gunakan parameter ketentuan kontainer hostname. Untuk informasi selengkapnya, lihat Pengaturan jaringan.

  • Anda memilih antara domainless gMSA dan menggabungkan setiap instance ke satu domain. Dengan menggunakan domainlessgMSA, instance container tidak digabungkan ke domain, aplikasi lain pada instance tidak dapat menggunakan kredensil untuk mengakses domain, dan tugas yang menggabungkan domain yang berbeda dapat berjalan pada instance yang sama.

    Kemudian, pilih penyimpanan data untuk CredSpec dan opsional, untuk kredensyal pengguna Active Directory untuk domainless. gMSA

    Amazon ECS menggunakan file spesifikasi kredensi Direktori Aktif ()CredSpec. File ini berisi gMSA metadata yang digunakan untuk menyebarkan konteks gMSA akun ke wadah. Anda menghasilkan CredSpec file dan kemudian menyimpannya di salah satu opsi CredSpec penyimpanan dalam tabel berikut, khusus untuk Sistem Operasi instance kontainer. Untuk menggunakan metode domainless, bagian opsional dalam CredSpec file dapat menentukan kredensional di salah satu opsi domainless user credentialspenyimpanan dalam tabel berikut, khusus untuk Sistem Operasi instance kontainer.

    gMSAopsi penyimpanan data oleh Sistem Operasi
    Lokasi penyimpanan Linux Windows
    Amazon Simple Storage Service CredSpec CredSpec
    AWS Secrets Manager kredensial pengguna tanpa domain kredensial pengguna tanpa domain
    Toko Parameter Amazon EC2 Systems Manager CredSpec CredSpec, kredensyal pengguna tanpa domain
    Berkas lokal N/A CredSpec

Prasyarat

Sebelum Anda menggunakan fitur gMSA untuk Windows container dengan Amazon ECS, pastikan untuk menyelesaikan yang berikut ini:

  • Anda menyiapkan domain Direktori Aktif dengan sumber daya yang ingin diakses oleh kontainer Anda. Amazon ECS mendukung pengaturan berikut:

    • Direktori AWS Directory Service Aktif. AWS Directory Service adalah Direktori Aktif AWS terkelola yang di-host di Amazon EC2. Untuk informasi selengkapnya, lihat Memulai dengan Microsoft AD yang AWS Dikelola di Panduan AWS Directory Service Administrasi.

    • Direktori Aktif lokal. Anda harus memastikan bahwa instans penampung Amazon ECS Linux dapat bergabung dengan domain. Untuk informasi selengkapnya, lihat AWS Direct Connect.

  • Anda memiliki gMSA akun yang ada di Direktori Aktif. Untuk informasi selengkapnya, lihat Membuat gMSA untuk kontainer Windows.

  • Anda memilih untuk menggunakan domainless gMSA atau instans penampung Amazon ECS Windows yang menghosting tugas Amazon ECS harus domain yang digabungkan ke Direktori Aktif dan menjadi anggota grup keamanan Direktori Aktif yang memiliki akses ke akun GMSA.

    Dengan menggunakan domainlessgMSA, instance container tidak digabungkan ke domain, aplikasi lain pada instance tidak dapat menggunakan kredensil untuk mengakses domain, dan tugas yang menggabungkan domain yang berbeda dapat berjalan pada instance yang sama.

  • Anda menambahkan izin IAM yang diperlukan. Izin yang diperlukan bergantung pada metode yang Anda pilih untuk kredensi awal dan untuk menyimpan spesifikasi kredensialnya:

    • Jika Anda menggunakan domainless gMSA untuk kredenal awal, izin IAM untuk diperlukan AWS Secrets Manager pada peran instans Amazon EC2.

    • Jika Anda menyimpan spesifikasi kredensi di Penyimpanan Parameter SSM, izin IAM untuk Amazon EC2 Systems Manager Parameter Store diperlukan pada peran eksekusi tugas.

    • Jika Anda menyimpan spesifikasi kredensi di Amazon S3, izin IAM untuk Amazon Simple Storage Service diperlukan pada peran eksekusi tugas.

Menyiapkan gMSA untuk Windows Container di Amazon ECS

Untuk mengatur gMSA untuk Windows Containers di Amazon ECS, Anda dapat mengikuti tutorial lengkap yang mencakup konfigurasi prasyarat. Menggunakan Amazon ECS Windows container dengan domainless gMSA menggunakan AWS CLI

Bagian berikut mencakup CredSpec konfigurasi secara rinci.

Contoh CredSpec

Amazon ECS menggunakan file spesifikasi kredenal yang berisi gMSA metadata yang digunakan untuk menyebarkan konteks gMSA akun ke wadah Windows. Anda dapat menghasilkan file spesifikasi kredensial dan referensi dalam bidang credentialSpec pada ketentuan tugas Anda. File spek kredensial tidak berisi rahasia apa pun.

Berikut ini contoh file spek kredensial:

{ "CmsPlugins": [ "ActiveDirectory" ], "DomainJoinConfig": { "Sid": "S-1-5-21-2554468230-2647958158-2204241789", "MachineAccountName": "WebApp01", "Guid": "8665abd4-e947-4dd0-9a51-f8254943c90b", "DnsTreeName": "contoso.com", "DnsName": "contoso.com", "NetBiosName": "contoso" }, "ActiveDirectoryConfig": { "GroupManagedServiceAccounts": [ { "Name": "WebApp01", "Scope": "contoso.com" } ] } }

Pengaturan tanpa domain gMSA

Kami merekomendasikan domainless gMSA daripada menggabungkan instance container ke satu domain. Dengan menggunakan domainlessgMSA, instance container tidak digabungkan ke domain, aplikasi lain pada instance tidak dapat menggunakan kredensil untuk mengakses domain, dan tugas yang menggabungkan domain yang berbeda dapat berjalan pada instance yang sama.

  1. Sebelum mengunggah CredSpec ke salah satu opsi penyimpanan, tambahkan informasi ke ARN rahasia di Secrets Manager atau SSM Parameter Store. CredSpec Untuk informasi selengkapnya, lihat Konfigurasi spesifikasi kredenal tambahan untuk kasus penggunaan host non-domain-joined kontainer di situs web Microsoft Learn.

    Format kredensi tanpa domain gMSA

    Berikut ini adalah format JSON untuk gMSA kredensyal domainless untuk Active Directory Anda. Simpan kredensialnya di Secrets Manager atau SSM Parameter Store.

    { "username":"WebApp01", "password":"Test123!", "domainName":"contoso.com" }
  2. Tambahkan informasi berikut ke CredSpec file di dalam fileActiveDirectoryConfig. Ganti ARN dengan rahasia di Secrets Manager atau SSM Parameter Store.

    Perhatikan bahwa PluginGUID nilai harus cocok dengan GUID dalam contoh cuplikan berikut dan diperlukan.

    "HostAccountConfig": { "PortableCcgVersion": "1", "PluginGUID": "{859E1386-BDB4-49E8-85C7-3070B13920E1}", "PluginInput": "{\"credentialArn\": \"arn:aws:secretsmanager:aws-region:111122223333:secret:gmsa-plugin-input\"}" }

    Anda juga dapat menggunakan rahasia di SSM Parameter Store dengan menggunakan ARN dalam format ini: \"arn:aws:ssm:aws-region:111122223333:parameter/gmsa-plugin-input\"

  3. Setelah Anda memodifikasi CredSpec file, itu akan terlihat seperti contoh berikut:

    { "CmsPlugins": [ "ActiveDirectory" ], "DomainJoinConfig": { "Sid": "S-1-5-21-4066351383-705263209-1606769140", "MachineAccountName": "WebApp01", "Guid": "ac822f13-583e-49f7-aa7b-284f9a8c97b6", "DnsTreeName": "contoso", "DnsName": "contoso", "NetBiosName": "contoso" }, "ActiveDirectoryConfig": { "GroupManagedServiceAccounts": [ { "Name": "WebApp01", "Scope": "contoso" }, { "Name": "WebApp01", "Scope": "contoso" } ], "HostAccountConfig": { "PortableCcgVersion": "1", "PluginGUID": "{859E1386-BDB4-49E8-85C7-3070B13920E1}", "PluginInput": "{\"credentialArn\": \"arn:aws:secretsmanager:aws-region:111122223333:secret:gmsa-plugin-input\"}" } } }

Referensi File Spek Kredensial dalam Definisi Tugas

Amazon ECS mendukung cara-cara berikut untuk mereferensikan jalur file di credentialSpecs bidang definisi tugas. Untuk masing-masing opsi ini, Anda dapat memberikan credentialspec: ataudomainlesscredentialspec:, tergantung pada apakah Anda menggabungkan instance penampung ke satu domain, atau menggunakan domainlessgMSA, masing-masing.

Bucket Amazon S3

Tambahkan spesifikasi kredenal ke bucket Amazon S3, lalu rujuk Nama Sumber Daya Amazon (ARN) bucket Amazon S3 di bidang definisi tugas. credentialSpecs

{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "credentialSpecs": [ "credentialspecdomainless:arn:aws:s3:::${BucketName}/${ObjectName}" ], ... } ], ... }

Anda juga harus menambahkan izin berikut sebagai kebijakan inline ke peran IAM eksekusi tugas Amazon ECS untuk memberikan akses tugas Anda ke bucket Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::{bucket_name}", "arn:aws:s3:::{bucket_name}/{object}" ] } ] }

Parameter SSM Menyimpan parameter

Tambahkan spesifikasi kredenal ke parameter Penyimpanan Parameter SSM, lalu rujuk Nama Sumber Daya Amazon (ARN) parameter Penyimpanan Parameter SSM di bidang definisi tugas. credentialSpecs

{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "credentialSpecs": [ "credentialspecdomainless:arn:aws:ssm:region:111122223333:parameter/parameter_name" ], ... } ], ... }

Anda juga harus menambahkan izin berikut sebagai kebijakan inline ke peran IAM eksekusi tugas Amazon ECS untuk memberikan akses tugas Anda ke parameter Penyimpanan Parameter SSM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:region:111122223333:parameter/parameter_name" ] } ] }

File Lokal

Dengan detail spesifikasi kredensial dalam file lokal, referensi jalur file di bidang ketentuan tugas credentialSpecs. Jalur file yang direferensikan harus relatif terhadap C:\ProgramData\Docker\CredentialSpecs direktori dan menggunakan garis miring terbalik ('\') sebagai pemisah jalur file.

{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "credentialSpecs": [ "credentialspec:file://CredentialSpecDir\CredentialSpecFile.json" ], ... } ], ... }