Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pelajari cara menggunakan g MSAs untuk wadah EC2 Windows 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 EC2 Amazon hostnya untuk mengambil kredenal GMSA dari pengontrol domain Active Directory dan menyediakannya ke instance container. Untuk informasi selengkapnya, lihat Membuat g MSAs untuk kontainer Windows
catatan
Fitur ini tidak didukung pada wadah Windows di Fargate.
Pertimbangan
Berikut ini harus dipertimbangkan saat menggunakan g MSAs untuk wadah 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 gMSAdan menggabungkan setiap instance ke satu domain. Dengan menggunakan domainless gMSA, instance kontainer tidak bergabung 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 secara opsional, untuk kredensil pengguna Active Directory untuk domainless gMSA.
Amazon ECS menggunakan file spesifikasi kredensi Direktori Aktif (CredSpec). File ini berisi gMSA metadata yang digunakan untuk menyebarkan gMSA konteks akun ke wadah. Anda menghasilkan CredSpec file dan kemudian simpan di salah satu CredSpec opsi penyimpanan dalam tabel berikut, khusus untuk Sistem Operasi instance kontainer. Untuk menggunakan metode domainless, bagian opsional di CredSpec file dapat menentukan kredensyal di salah satu domainless user credentialsopsi penyimpanan dalam tabel berikut, khusus untuk Sistem Operasi instance kontainer.
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, kredensi pengguna tanpa domain Berkas lokal N/A CredSpec
Prasyarat
Sebelum Anda menggunakan gMSA untuk fitur wadah Windows dengan Amazon ECS, pastikan untuk menyelesaikan hal berikut:
-
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 yang sudah ada gMSA akun di Direktori Aktif. Untuk informasi selengkapnya, lihat Membuat g MSAs untuk kontainer Windows
. -
Anda memilih untuk menggunakan domainless gMSAatau 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 domainless gMSA, instance kontainer tidak bergabung 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 kredensyal awal dan untuk menyimpan spesifikasi kredensialnya:
-
Jika Anda menggunakan domainless gMSAuntuk kredensi awal, izin IAM untuk diperlukan pada peran AWS Secrets Manager instans Amazon. EC2
-
Jika Anda menyimpan spesifikasi kredensyal di SSM Parameter Store, izin IAM untuk Amazon Systems EC2 Manager Parameter Store diperlukan pada peran eksekusi tugas.
-
Jika Anda menyimpan spesifikasi kredensyal di Amazon S3, izin IAM untuk Amazon Simple Storage Service diperlukan pada peran eksekusi tugas.
-
Pengaturan 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 wadah Amazon ECS Windows dengan domainless gMSA menggunakan AWS CLI
Bagian berikut mencakup CredSpec konfigurasi secara detail.
Topik
Contoh CredSpec
Amazon ECS menggunakan file spesifikasi kredensi yang berisi gMSA metadata yang digunakan untuk menyebarkan gMSA konteks 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"
}
]
}
}
Tanpa Domain gMSA mempersiapkan
Kami merekomendasikan domainless gMSA alih-alih menggabungkan instance kontainer ke satu domain. Dengan menggunakan domainless gMSA, instance kontainer tidak bergabung 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.
-
Sebelum mengunggah CredSpec ke salah satu opsi penyimpanan, tambahkan informasi ke CredSpec dengan ARN rahasia di Secrets Manager atau SSM Parameter Store. Untuk informasi selengkapnya, lihat Konfigurasi spesifikasi kredensyal tambahan untuk kasus penggunaan host non-domain-joined kontainer di situs
web Microsoft Learn. Tanpa Domain gMSA format kredensi
Berikut ini adalah format JSON untuk domainless gMSA kredensi untuk Active Directory Anda. Simpan kredensialnya di Secrets Manager atau SSM Parameter Store.
{ "username":"
WebApp01
", "password":"Test123!
", "domainName":"contoso.com
" } -
Tambahkan informasi berikut ke CredSpec file di dalam
ActiveDirectoryConfig
. 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
\" -
Setelah Anda memodifikasi CredSpec file, seharusnya 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 container ke satu domain, atau menggunakan domainless gMSA, masing-masing.
Bucket Amazon S3
Tambahkan spesifikasi kredensyal 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
" ], ... } ], ... }