Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Peran IAM eksekusi tugas Amazon ECS
Peran eksekusi tugas memberikan izin kepada kontainer Amazon ECS dan agen Fargate untuk melakukan panggilan AWS API 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. Untuk izin IAM yang perlu dijalankan aplikasi Anda, lihat. Tugas peran IAM
Berikut ini adalah kasus penggunaan umum untuk peran IAM eksekusi tugas:
-
Tugas Anda di-host pada AWS Fargateatau pada instans eksternal dan:
-
sedang menarik gambar kontainer dari repositori pribadi Amazon ECR.
-
sedang menarik gambar kontainer dari repositori pribadi Amazon ECR di akun berbeda dari akun yang menjalankan tugas.
-
mengirim log kontainer ke CloudWatch Log menggunakan driver
awslogs
log. Untuk informasi selengkapnya, lihat Menggunakan driver log awslogs.
-
-
Tugas Anda di-host di salah satu AWS Fargate atau instans Amazon EC2 dan...
-
menggunakan autentikasi registri privat. Untuk informasi selengkapnya, lihat Izin IAM yang diperlukan untuk otentikasi registri pribadi.
-
menggunakan Runtime Monitoring.
-
definisi tugas merujuk data sensitif menggunakan rahasia Secrets Manager atau parameter AWS Systems Manager Parameter Store. Untuk informasi selengkapnya, lihat Izin IAM yang diperlukan untuk rahasia Amazon ECS.
-
catatan
Peran eksekusi tugas didukung oleh agen penampung 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 di atas. Mungkin perlu menambahkan kebijakan sebaris ke peran eksekusi tugas Anda untuk kasus penggunaan khusus yang diuraikan di bawah ini.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }
Peran eksekusi tugas Amazon ECS dapat dibuat untuk Anda di konsol Amazon ECS; namun, Anda harus secara manual melampirkan kebijakan IAM terkelola untuk tugas agar Amazon ECS menambahkan izin untuk fitur dan penyempurnaan future 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.
Membuat peran eksekusi tugas (ecsTaskExecutionRole
)
Jika akun Anda belum memiliki peran eksekusi tugas, gunakan langkah-langkah berikut untuk membuat peran tersebut.
Izin IAM yang diperlukan untuk otentikasi registri pribadi
Peran eksekusi tugas Amazon ECS diperlukan untuk menggunakan fitur ini. Hal ini mengizinkan agen kontainer untuk menarik citra kontainer.
Untuk memberikan akses ke rahasia yang Anda buat, tambahkan izin berikut sebagai kebijakan inline ke peran eksekusi tugas. Untuk informasi selengkapnya, lihat Menambahkan dan Menghapus Kebijakan IAM.
-
secretsmanager:GetSecretValue
-
kms:Decrypt
—Diperlukan hanya jika kunci 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 inline yang menambahkan izin.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ] }
Izin IAM yang diperlukan untuk rahasia Amazon ECS
Untuk menggunakan fitur rahasia Amazon ECS, Anda harus memiliki peran eksekusi tugas Amazon ECS dan mereferensikannya dalam definisi tugas Anda. Hal ini memungkinkan agen kontainer untuk menarik sumber daya Secrets Manager yang diperlukan AWS Systems Manager atau Secrets. Untuk informasi selengkapnya, lihat Meneruskan data sensitif ke wadah.
Menggunakan Secrets Manager
Untuk memberikan akses ke rahasia Secrets Manager yang Anda buat, tambahkan izin berikut secara manual ke peran eksekusi tugas. Untuk informasi tentang cara mengelola izin, lihat Menambahkan dan Menghapus izin identitas IAM di Panduan Pengguna IAM.
-
secretsmanager:GetSecretValue
— Diperlukan jika Anda mereferensikan rahasia Secrets Manager. Menambahkan izin untuk mengambil rahasia dari Secrets Manager.
Contoh kebijakan berikut menambahkan izin yang diperlukan.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
region
:aws_account_id
:secret:secret_name
" ] } ] }
Menggunakan Systems Manager
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 memberikan akses ke parameter Penyimpanan Parameter Systems Manager yang Anda buat, tambahkan izin berikut secara manual sebagai kebijakan ke peran eksekusi tugas. Untuk informasi tentang cara mengelola izin, lihat Menambahkan dan Menghapus izin identitas IAM di Panduan Pengguna IAM.
-
ssm:GetParameters
— Diperlukan jika Anda mereferensikan parameter Systems Manager Parameter Store dalam definisi tugas. Menambahkan izin untuk mengambil parameter Systems Manager. -
secretsmanager:GetSecretValue
— Diperlukan jika Anda mereferensikan rahasia Secrets Manager baik secara langsung atau jika parameter Parameter Store Systems Manager Anda mereferensikan rahasia Secrets Manager dalam definisi tugas. Menambahkan izin untuk mengambil rahasia dari Secrets Manager. -
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.
Contoh kebijakan berikut menambahkan izin yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:
region
:aws_account_id
:parameter/parameter_name
", "arn:aws:secretsmanager:region
:aws_account_id
:secret:secret_name
", "arn:aws:kms:region
:aws_account_id
:key/key_id
" ] } ] }
Izin IAM opsional untuk tugas Fargate yang menarik gambar Amazon ECR melalui titik akhir antarmuka
Saat meluncurkan tugas yang menggunakan tipe peluncuran 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:SourceVpc
—Membatasi akses ke VPC tertentu. -
aws:SourceVpce
—Membatasi akses ke titik akhir VPC tertentu.
Kebijakan peran eksekusi tugas berikut memberikan contoh untuk menambahkan kunci syarat:
penting
Tindakan ecr:GetAuthorizationToken
API tidak dapat memiliki aws:sourceVpc
atau aws:sourceVpce
kunci-kunci kondisi yang diterapkan padanya karena panggilan GetAuthorizationToken API melewati elastic network interface yang dimiliki oleh AWS Fargate daripada elastic network interface dari tugas tersebut.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": "
vpce-xxxxxx
", "aws:sourceVpc": "vpc-xxxxx
" } } } ] }