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.
catatan
Izin ini tidak dapat diakses oleh kontainer dalam tugas. Untuk izin IAM yang perlu dijalankan aplikasi Anda, lihat. Peran IAM tugas Amazon ECS
Berikut ini adalah kasus penggunaan umum untuk peran IAM eksekusi tugas:
-
Tugas Anda di-host pada AWS Fargateatau pada 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.
-
mengirim log kontainer ke CloudWatch Log menggunakan driver
awslogs
log. Untuk informasi selengkapnya, lihat Kirim log Amazon ECS ke CloudWatch .
-
-
Tugas Anda di-host di salah satu AWS Fargate atau EC2 instans Amazon dan:
-
menggunakan otentikasi registri pribadi. Untuk informasi selengkapnya, lihat Izin otentikasi registri pribadi.
-
menggunakan Runtime Monitoring.
-
definisi tugas mereferensikan data sensitif menggunakan rahasia Secrets Manager atau parameter AWS Systems Manager Parameter Store. Untuk informasi selengkapnya, lihat Izin Secrets Manager atau Systems Manager.
-
catatan
Peran eksekusi tugas didukung oleh agen penampung Amazon ECS versi 1.16.0 dan yang lebih baru.
Amazon ECS menyediakan kebijakan terkelola bernama Amazon ECSTask ExecutionRolePolicy yang berisi izin yang diperlukan oleh kasus penggunaan umum yang dijelaskan di atas. Untuk informasi selengkapnya, lihat Amazon ECSTask ExecutionRolePolicy di Panduan Referensi Kebijakan AWS Terkelola. Mungkin perlu menambahkan kebijakan sebaris ke peran eksekusi tugas Anda untuk kasus penggunaan khusus
Konsol Amazon ECS membuat peran eksekusi tugas. Anda dapat secara manual melampirkan kebijakan IAM terkelola untuk tugas agar Amazon ECS dapat 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 penelusuran konsol IAM di panduan pengguna IAM.
Jika Anda menarik gambar sebagai pengguna yang diautentikasi, Anda cenderung tidak terpengaruh oleh perubahan yang terjadi pada Docker Hubpenggunaan 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 mengautentikasi ke registri gambar pribadi menggunakan. repositoryCredentials
Tidak mungkin menyetel variabel lingkungan agen penampung Amazon ECS ECS_ENGINE_AUTH_TYPE
ECS_ENGINE_AUTH_DATA
atau memodifikasi ecs.config
file untuk tugas yang dihosting di Fargate. Untuk informasi selengkapnya, lihat Autentikasi 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 pendaftar pribadi di luar AWS (seperti Docker Hub, Quay.io, atau registri pribadi Anda sendiri) menggunakan kredensil Secrets Manager |
|
Lulus data sensitif dengan Systems Manager atau Secrets Manager | |
Minta tugas Fargate menarik gambar Amazon ECR melalui titik akhir antarmuka | Tugas Fargate menarik gambar Amazon ECR melalui izin titik akhir antarmuka |
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 dalam Container Insights |
Melihat peristiwa siklus hidup Amazon ECS di Wawasan Kontainer |
Izin diperlukan untuk melihat peristiwa siklus hidup Amazon ECS di Wawasan Kontainer |
Izin otentikasi registri pribadi
Autentikasi registri pribadi memungkinkan tugas Amazon ECS Anda menarik gambar kontainer dari pendaftar pribadi di luar AWS (seperti Docker Hub, Quay.io, atau registri pribadi Anda sendiri) yang memerlukan kredensi otentikasi. Fitur ini menggunakan Secrets Manager untuk menyimpan kredenal registri Anda dengan aman, yang kemudian direferensikan dalam definisi tugas Anda menggunakan parameter. repositoryCredentials
Untuk informasi selengkapnya tentang mengonfigurasi autentikasi registri pribadi, lihat Menggunakan gambar AWS non-kontainer di Amazon ECS.
Untuk menyediakan akses ke rahasia yang berisi kredensil registri pribadi Anda, tambahkan izin berikut sebagai kebijakan inline ke peran eksekusi tugas. Untuk informasi selengkapnya, lihat Menambahkan dan Menghapus Kebijakan IAM.
-
secretsmanager:GetSecretValue
—Diperlukan untuk mengambil kredensi registri pribadi dari Secrets Manager. -
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 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 Secrets Manager atau Systems Manager
Izin untuk mengizinkan agen kontainer menarik sumber daya Secrets Manager yang diperlukan AWS Systems Manager atau Secrets. Untuk informasi selengkapnya, lihat Meneruskan data sensitif ke wadah Amazon ECS.
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 EC2 peluncuran, 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
" ] } ] }
Tugas Fargate menarik gambar Amazon ECR melalui izin 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. Anda dapat membatasi VPC ke VPC yang menampung tugas dan titik akhir. -
aws:SourceVpce
—Membatasi akses ke titik akhir VPC tertentu.
Kebijakan peran eksekusi tugas berikut memberikan contoh untuk menambahkan kunci syarat:
{ "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
" } } } ] }
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 penampung Amazon ECS dan agen Fargate menarik gambar kontainer atas nama Anda. Untuk implementasi ECS dasar, izin ini harus ditambahkan ke peran eksekusi tugas daripada peran IAM tugas.
Kebijakan terkelola peran eksekusi tugas Amazon ECS (AmazonECSTaskExecutionRolePolicy
) menyertakan izin yang diperlukan untuk menarik gambar dari Amazon ECR. Jika menggunakan kebijakan terkelola, Anda tidak perlu menambahkan izin ini secara terpisah.
Jika Anda membuat kebijakan khusus, sertakan izin berikut untuk mengizinkan pengambilan gambar dari Amazon ECR:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Perhatikan bahwa izin ini berbeda dari izin yang mungkin diperlukan dalam peran IAM tugas jika kode aplikasi Anda perlu berinteraksi dengan Amazon ECR secara langsung. APIs Untuk informasi tentang izin peran IAM tugas untuk Amazon ECR, lihat. Izin Amazon ECR
Izin penyimpanan file Amazon S3
Saat Anda menentukan file konfigurasi yang di-host di Amazon S3, peran eksekusi tugas harus menyertakan s3:GetObject
izin untuk file konfigurasi dan s3:GetBucketLocation
izin di 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.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "
s3:GetObject
" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
/folder_name
/config_file_name
" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
" ] } ] }