Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Peran IAM pelaksanaan tugas Amazon ECS
Peran pelaksanaan tugas memberikan izin kepada kontainer Amazon ECS dan agen Fargate untuk membuat panggilan API AWS atas nama Anda. IAM role eksekusi tugas diperlukan sesuai dengan persyaratan tugas Anda. Anda dapat memiliki beberapa peran eksekusi tugas untuk berbagai tujuan dan layanan yang terkait dengan akun Anda.
catatan
Izin ini tersedia untuk agen yang berjalan di instans Anda oleh Amazon ECS yang secara berkala mengirimkan kredenSIAL sementara peran tersebut, tetapi izin tersebut tidak dapat diakses secara langsung oleh kontainer dalam tugas. Untuk izin IAM yang perlu dijalankan kode aplikasi Anda di dalam wadah, lihatPeran IAM tugas Amazon ECS.
Berikut ini adalah kasus penggunaan umum untuk peran IAM eksekusi tugas:
-
Tugas Anda dihosting di AWS Fargate, Instans Terkelola Amazon ECS, atau instans eksternal dan:
-
menarik gambar kontainer dari repositori pribadi Amazon ECR.
-
menarik gambar kontainer dari repositori pribadi Amazon ECR di akun yang berbeda dari akun yang menjalankan tugas.
-
mengirimkan log kontainer ke CloudWatch Log menggunakan driver
awslogslog. Untuk informasi selengkapnya, lihat Kirim log Amazon ECS ke CloudWatch.
-
-
Tugas Anda dihosting di salah satu inst AWS Fargate ans atau Amazon EC2 dan:
-
menggunakan otentikasi registri pribadi. Untuk informasi selengkapnya, lihat Izin otentikasi registri pribadi.
-
menggunakan Runtime Monitoring.
-
definisi tugas mereferensikan data sensitif menggunakan rahasia Manajer Rahasia atau parameter AWS Penyimpanan Parameter Manajer Sistem. Untuk informasi selengkapnya, lihat Izin Manajer Rahasia atau Manajer Sistem.
-
catatan
Peran eksekusi tugas didukung oleh agen kontainer Amazon ECS versi 1.16.0 dan yang lebih baru.
Amazon ECS menyediakan kebijakan terkelola bernama AmazonECSTaskExecutionRolePolicy yang berisi izin yang diperlukan oleh kasus penggunaan umum yang dijelaskan sebelumnya. Untuk informasi selengkapnya, lihat AmazonECSTaskExecutionRolePolicy Panduan Refer AWS ensi Kebijakan Terkelola. Mungkin perlu menambahkan kebijakan sebaris ke peran eksekusi tugas Anda untuk kasus penggunaan khusus
Konsol Amazon ECS menciptakan peran eksekusi tugas. Anda dapat melampirkan kebijakan IAM terkelola secara manual untuk tugas agar Amazon ECS dapat menambahkan izin untuk fitur dan penyempurnaan di masa mendatang saat diperkenalkan. Anda dapat menggunakan pencarian konsol IAM untuk mencari ecsTaskExecutionRole dan melihat apakah akun Anda sudah memiliki peran eksekusi tugas. Untuk informasi selengkapnya, lihat pencarian konsol IAM di panduan pengguna IAM.
Jika Anda menarik gambar sebagai pengguna yang diautentikasi, Anda cenderung tidak terpengaruh oleh perubahan yang terjadi pada Docker Hub penggunaan dan batasan
Dengan menggunakan Amazon ECR dan Amazon ECR Public, Anda dapat menghindari batasan yang diberlakukan oleh Docker. Jika Anda menarik gambar dari Amazon ECR, ini juga membantu mempersingkat waktu tarik jaringan dan mengurangi perubahan transfer data saat lalu lintas meninggalkan VPC Anda.
Saat Anda menggunakan Fargate, Anda harus mengotentikasi ke registri gambar pribadi menggunakan. repositoryCredentials Tidak mungkin menyetel variabel lingkungan agen kontainer Amazon ECS ECS_ENGINE_AUTH_TYPE atau ECS_ENGINE_AUTH_DATA atau memodifikasi ecs.config file untuk tugas yang dihosting di Fargate. Untuk informasi selengkapnya, lihat O tentikasi registri pribadi untuk tugas.
Membuat peran eksekusi tugas
Jika akun Anda belum memiliki peran eksekusi tugas, gunakan langkah-langkah berikut untuk membuat peran tersebut.
Setelah Anda membuat peran, tambahkan izin tambahan ke peran untuk fitur berikut.
| Fitur | Izin tambahan |
|---|---|
|
Tarik gambar kontainer dari registri pribadi di luar AWS (seperti Docker Hub, Quay.io, atau registri pribadi Anda sendiri) menggunakan kredentif Secrets Manager |
|
| Berikan data sensitif dengan Manajer Sistem atau Manajer Rahasia | |
| Mintalah tugas Fargate menarik gambar Amazon ECR melalui titik akhir antarmuka | Tugas Fargate menarik gambar Amazon ECR melalui izin titik akhir antarmuka |
| Meng-host file konfigurasi dalam bucket Amazon S3 | |
| Konfigurasikan Wawasan Kontainer untuk melihat peristiwa siklus hidup Amazon ECS |
Izin diperlukan untuk mengaktifkan peristiwa siklus hidup Amazon ECS di Container Insights |
| Lihat peristiwa siklus hidup Amazon ECS di Container Insights |
Izin diperlukan untuk melihat peristiwa siklus hidup Amazon ECS di Container Insights |
Izin otentikasi registri pribadi
Otentikasi registri pribadi memungkinkan tugas Amazon ECS Anda untuk menarik gambar kontainer dari pendaftar pribadi di luar AWS (seperti Docker Hub, Quay.io, atau registri pribadi Anda sendiri) yang memerlukan kredentif otentikasi. Fitur ini menggunakan Secrets Manager untuk menyimpan kredenSIAL registri Anda dengan aman, yang kemudian direferensikan dalam definisi tugas Anda menggunakan repositoryCredentials parameter.
Untuk informasi selengkapnya tentang mengonfigurasi otentikasi registri pribadi, lihat Menggunakan gambar AWS non-kontainer di Amazon ECS.
Untuk memberikan akses ke rahasia yang berisi kredentif registri pribadi Anda, tambahkan izin berikut sebagai kebijakan sebaris ke peran eksekusi tugas. Untuk informasi selengkapnya, lihat Menambahkan dan Menghapus Kebijakan IAM.
-
secretsmanager:GetSecretValue—Diperlukan untuk mengambil kredenSIAL registri pribadi dari Manajer Rahasia. -
kms:Decrypt—Wajib hanya jika rahasia Anda menggunakan kunci KMS khusus dan bukan kunci default. Nama Sumber Daya Amazon (ARN) untuk kunci kustom Anda harus ditambahkan sebagai sumber daya.
Berikut ini adalah contoh kebijakan sebaris yang menambahkan izin.
Izin Manajer Rahasia atau Manajer Sistem
Izin untuk mengizinkan agen kontainer untuk menarik sumber daya yang diperlukan AWS Systems Manager atau Manajer Rahasia. Untuk informasi selengkapnya, lihat Meneruskan data sensitif ke wadah Amazon ECS.
Menggunakan Manajer Rahasia
Untuk memberikan akses ke rahasia Manajer Rahasia yang Anda buat, tambahkan izin berikut secara manual ke peran eksekusi tugas. Untuk informasi tentang cara mengelola izin, lihat Men ambahkan dan Menghapus izin identitas IAM di Panduan Pengguna IAM.
-
secretsmanager:GetSecretValue— Diperlukan jika Anda merujuk rahasia Manajer Rahasia. Menambahkan izin untuk mengambil rahasia dari Manajer Rahasia.
Kebijakan contoh berikut menambahkan izin yang diperlukan.
Menggunakan Manajer Sistem
penting
Untuk tugas yang menggunakan tipe peluncuran EC2, Anda harus menggunakan variabel konfigurasi agen ECS ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true untuk menggunakan fitur ini. Anda dapat menambahkannya ke file ./etc/ecs/ecs.config selama pembuatan instans kontainer atau Anda dapat menambahkannya ke instans yang ada, lalu memulai ulang agen ECS. Untuk informasi selengkapnya, lihat Konfigurasi agen kontainer Amazon ECS.
Untuk menyediakan akses ke parameter Penyimpanan Parameter Manajer Sistem yang Anda buat, tambahkan izin berikut secara manual sebagai kebijakan ke peran eksekusi tugas. Untuk informasi tentang cara mengelola izin, lihat Men ambahkan dan Menghapus izin identitas IAM di Panduan Pengguna IAM.
-
ssm:GetParameters- Diperlukan jika Anda mereferensikan parameter Penyimpanan Parameter Manajer Sistem dalam definisi tugas. Menambahkan izin untuk mengambil parameter Manajer Sistem. -
secretsmanager:GetSecretValue- Diperlukan jika Anda mereferensikan rahasia Manajer Rahasia baik secara langsung atau jika parameter Penyimpanan Parameter Manajer Sistem Anda mereferensikan rahasia Manajer Rahasia dalam definisi tugas. Menambahkan izin untuk mengambil rahasia dari Manajer Rahasia. -
kms:Decrypt— Diperlukan hanya jika rahasia Anda menggunakan kunci yang dikelola pelanggan dan bukan kunci default. ARN untuk kunci khusus Anda harus ditambahkan sebagai sumber daya. Menambahkan izin untuk mendekripsi kunci yang dikelola pelanggan.
Kebijakan contoh berikut menambahkan izin yang diperlukan:
Tugas Fargate menarik gambar Amazon ECR melalui izin titik akhir antarmuka
Saat meluncurkan tugas yang menggunakan Fargate yang menarik gambar dari Amazon ECR saat Amazon ECR dikonfigurasi untuk menggunakan titik akhir VPC antarmuka, Anda dapat membatasi akses tugas ke titik akhir VPC atau VPC tertentu. Lakukan ini dengan membuat peran eksekusi tugas untuk tugas yang akan digunakan yang menggunakan kunci kondisi IAM.
Gunakan kunci kondisi global IAM berikut untuk membatasi akses ke titik akhir VPC atau VPC tertentu. Untuk informasi selengkapnya, lihat Kunci Konteks Syarat Global AWS.
-
aws:SourceVpcMembatasi akses ke VPC tertentu. Anda dapat membatasi VPC ke VPC yang menghosting tugas dan titik akhir. -
aws:SourceVpceMembatasi akses ke titik akhir VPC tertentu.
Kebijakan peran eksekusi tugas berikut memberikan contoh untuk menambahkan kunci syarat:
Izin Amazon ECR
Izin berikut diperlukan saat Anda perlu menarik gambar kontainer dari repositori pribadi Amazon ECR. Peran eksekusi tugas harus memiliki izin ini untuk memungkinkan wadah Amazon ECS dan agen Fargate untuk menarik gambar kontainer atas nama Anda. Untuk implementasi ECS dasar, izin ini harus ditambahkan ke peran eksekusi tugas daripada peran IAM tugas.
Kebijakan yang dikelola peran eksekusi tugas Amazon ECS (AmazonECSTaskExecutionRolePolicy) mencakup izin yang diperlukan untuk menarik gambar dari Amazon ECR. Jika Anda menggunakan kebijakan terkelola, Anda tidak perlu menambahkan izin ini secara terpisah.
Jika Anda membuat kebijakan khusus, sertakan izin berikut untuk mengizinkan penarikan gambar dari Amazon ECR:
Perhatikan bahwa izin ini berbeda dari izin yang mungkin diperlukan dalam peran IAM tugas jika kode aplikasi Anda perlu berinteraksi dengan API Amazon ECR secara langsung. Untuk informasi tentang izin peran IAM tugas untuk Amazon ECR, lihatIzin Amazon ECR.
Izin penyimpanan file Amazon S3
Saat Anda menentukan file konfigurasi yang dihosting di Amazon S3, peran eksekusi tugas harus menyertakan s3:GetObject izin untuk file konfigurasi dan s3:GetBucketLocation izin pada bucket Amazon S3 tempat file tersebut berada. Untuk informasi selengkapnya, lihat Tindakan kebijakan untuk Amazon S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
Kebijakan contoh berikut menambahkan izin yang diperlukan untuk mengambil file dari Amazon S3. Tentukan nama bucket Amazon S3 dan nama file konfigurasi Anda.
Pertimbangan Keamanan Penting
Saat menggunakan fitur Amazon ECS yang terintegrasi dengan bucket Amazon S3, terapkan validasi kepemilikan bucket untuk mencegah serangan pengambilalihan bucket. Tanpa validasi yang tepat, jika bucket Amazon S3 dihapus dan dibuat ulang oleh aktor jahat dengan nama yang sama, tugas Anda mungkin secara tidak sadar memuat konfigurasi berbahaya atau mengirim data sensitif ke bucket yang dikendalikan penyerang.
Kondisi Kebijakan IAM yang Direkomendasikan:
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "TRUSTED-ACCOUNT-ID"
}
}
Ganti TRUSTED-ACCOUNT-ID dengan ID AWS akun yang memiliki bucket S3.
Kondisi ini memastikan peran eksekusi tugas Anda hanya dapat mengakses bucket Amazon S3 yang dimiliki oleh akun tepercaya yang ditentukan.