Penggunaan gMSA untuk Linux kontainer di Fargate - Amazon Elastic Container Service

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

Penggunaan gMSA untuk Linux kontainer di Fargate

Amazon ECS mendukung otentikasi Active Directory untuk wadah Linux di Fargate melalui jenis akun layanan khusus yang disebut grup Akun Layanan Terkelola (gMSA).

Linux aplikasi jaringan berbasis, seperti .NET Aplikasi inti, dapat menggunakan Active Directory untuk memfasilitasi otentikasi dan manajemen otorisasi antara pengguna dan layanan. Anda dapat menggunakan fitur ini dengan merancang aplikasi yang terintegrasi dengan Active Directory dan berjalan di server yang bergabung dengan domain. Tapi, karena Linux kontainer tidak dapat bergabung dengan domain, Anda perlu mengonfigurasi Linux wadah untuk dijalankan dengan gMSA.

Pertimbangan

Pertimbangkan hal berikut sebelum Anda menggunakan gMSA untuk Linux kontainer di Fargate:

  • Anda harus menjalankan Platform Versi 1.4 atau yang lebih baru.

  • Anda mungkin membutuhkan Windows komputer yang bergabung ke domain untuk menyelesaikan prasyarat. Misalnya, Anda mungkin membutuhkan Windows komputer yang bergabung dengan domain untuk membuat gMSA di Active Directory dengan PowerShell. RSAT PowerShell Alat Direktur Aktif hanya tersedia untuk Windows. Untuk informasi selengkapnya, lihat Menginstal alat administrasi Direktori Aktif.

  • Anda harus menggunakan 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 ember Amazon S3.

  • Sebuah tugas hanya dapat mendukung satu Direktori Aktif.

Prasyarat

Sebelum Anda menggunakan gMSA untuk fitur wadah Linux dengan AmazonECS, 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 AmazonEC2. 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 dan pengguna yang memiliki izin untuk mengakses gMSA akun layanan. Untuk informasi selengkapnya, lihat Jadikan pengguna Active Directory untuk domainless gMSA.

  • Anda memiliki ember Amazon S3. Lihat informasi yang lebih lengkap di Membuat bucket dalam Panduan Pengguna Amazon S3.

Pengaturan gMSA-mampu Linux Wadah di Amazon ECS

Siapkan infrastruktur

Langkah-langkah berikut adalah pertimbangan dan pengaturan yang dilakukan sekali.

  • Jadikan pengguna Active Directory untuk domainless gMSA

    Saat Anda menggunakan domainless gMSA, wadah tidak bergabung ke domain. Aplikasi lain yang berjalan di wadah tidak dapat menggunakan kredensyal untuk mengakses domain. Tugas yang menggunakan domain berbeda dapat berjalan pada wadah yang sama. Anda memberikan nama rahasia di AWS Secrets Manager dalam CredSpec berkas. Rahasianya harus berisi nama pengguna, kata sandi, dan domain untuk masuk.

    Fitur ini mirip dengan gMSA support for non-domain-joined container hostsfitur. Untuk informasi selengkapnya tentang fitur Windows, lihat gMSA arsitektur dan peningkatan di situs web Microsoft Learn.

    1. Konfigurasikan pengguna di domain Active Directory Anda. Pengguna di Direktori Aktif harus memiliki izin untuk mengakses gMSA akun layanan yang Anda gunakan dalam tugas.

    2. Anda memiliki VPC dan subnet yang dapat menyelesaikan nama domain Active Directory. Konfigurasikan DHCP opsi VPC with dengan nama domain yang menunjuk ke nama layanan Active Directory. Untuk informasi tentang cara mengonfigurasi DHCP opsiVPC, lihat Set DHCP opsi Bekerja dengan di Panduan Pengguna Amazon Virtual Private Cloud.

    3. Buat rahasia di AWS Secrets Manager.

    4. Buat file spesifikasi kredensi.

Menyiapkan izin dan rahasia

Lakukan langkah-langkah berikut satu kali untuk setiap aplikasi dan setiap definisi tugas. Kami menyarankan Anda menggunakan praktik terbaik untuk memberikan hak istimewa paling sedikit dan mempersempit izin yang digunakan dalam kebijakan. Dengan cara ini, setiap tugas hanya dapat membaca rahasia yang dibutuhkannya.

  1. Buat pengguna di domain Active Directory Anda. Pengguna di Active Directory harus memiliki izin untuk mengakses gMSA akun layanan yang Anda gunakan dalam tugas.

  2. Setelah Anda membuat pengguna Active Directory, buat rahasia di AWS Secrets Manager. Untuk informasi selengkapnya, lihat Membuat AWS Secrets Manager rahasia.

  3. Masukkan nama pengguna, kata sandi, dan domain ke pasangan JSON nilai kunci yang disebutusername, password dandomainName, masing-masing.

    {"username":"username","password":"passw0rd", "domainName":"example.com"}
  4. Anda harus menambahkan izin berikut sebagai kebijakan inline ke peran eksekusi IAM tugas. Melakukan hal itu memberikan akses credentials-fetcher daemon ke rahasia Secrets Manager. Ganti MySecret contoh dengan Amazon Resource Name (ARN) rahasia Anda dalam Resource daftar.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:aws-region:111122223333:secret:MySecret" ] } ] }
    catatan

    Jika Anda menggunakan KMS kunci Anda sendiri untuk mengenkripsi rahasia Anda, Anda harus menambahkan izin yang diperlukan untuk peran ini dan menambahkan peran ini ke kebijakan AWS KMS kunci.

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

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

    Untuk memberikan akses tugas ke bucket S3, tambahkan izin berikut sebagai kebijakan inline ke peran eksekusi ECS tugas Amazon. IAM

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

File spesifikasi kredensi

Amazon ECS menggunakan file spesifikasi kredensi Direktori Aktif (CredSpec). File ini berisi gMSA metadata yang digunakan untuk menyebarkan gMSA konteks akun untuk Linux wadah. Anda menghasilkan CredSpec dan referensi di credentialSpecs bidang dalam definisi tugas Anda. Bagian CredSpec file tidak mengandung rahasia apa pun.

Berikut ini adalah contoh CredSpec berkas.

{ "CmsPlugins": [ "ActiveDirectory" ], "DomainJoinConfig": { "Sid": "S-1-5-21-2554468230-2647958158-2204241789", "MachineAccountName": "WebApp01", "Guid": "8665abd4-e947-4dd0-9a51-f8254943c90b", "DnsTreeName": "example.com", "DnsName": "example.com", "NetBiosName": "example" }, "ActiveDirectoryConfig": { "GroupManagedServiceAccounts": [ { "Name": "WebApp01", "Scope": "example.com" } ], "HostAccountConfig": { "PortableCcgVersion": "1", "PluginGUID": "{859E1386-BDB4-49E8-85C7-3070B13920E1}", "PluginInput": { "CredentialArn": "arn:aws:secretsmanager:aws-region:111122223333:secret:MySecret" } } } }
Membuat sebuah CredSpec dan mengunggahnya ke Amazon S3

Anda membuat CredSpec dengan menggunakan CredSpec PowerShell modul pada a Windows komputer yang bergabung dengan domain. Ikuti langkah-langkah di Buat spesifikasi kredenal di Microsoft Pelajari situs web.

Setelah Anda membuat file spesifikasi kredensi, unggah ke bucket Amazon S3. Salin CredSpec file ke komputer atau lingkungan tempat Anda menjalankan AWS CLI perintah.

Jalankan AWS CLI perintah berikut untuk mengunggah CredSpec ke Amazon S3. Ganti amzn-s3-demo-bucket dengan nama bucket Amazon S3 Anda. Anda dapat menyimpan file sebagai objek di bucket dan lokasi mana pun, tetapi Anda harus mengizinkan akses ke bucket dan lokasi tersebut dalam kebijakan yang Anda lampirkan ke peran eksekusi tugas.

Untuk PowerShell, gunakan perintah berikut:

$ Write-S3Object -BucketName "amzn-s3-demo-bucket" -Key "ecs-domainless-gmsa-credspec" -File "gmsa-cred-spec.json"

AWS CLI Perintah berikut menggunakan karakter kelanjutan garis miring terbalik yang digunakan oleh sh dan shell yang kompatibel.

$ aws s3 cp gmsa-cred-spec.json \ s3://amzn-s3-demo-bucket/ecs-domainless-gmsa-credspec