View a markdown version of this page

Peran IAM instans kontainer Amazon ECS - Amazon Elastic Container Service

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

Peran IAM instans kontainer Amazon ECS

Instans kontainer Amazon ECS, termasuk Amazon EC2 dan instans eksternal, menjalankan agen kontainer Amazon ECS dan memerlukan peran IAM agar layanan mengetahui bahwa agen tersebut milik Anda. Sebelum meluncurkan instance kontainer dan mendaftarkannya ke cluster, Anda harus membuat peran IAM untuk digunakan instans kontainer Anda. Peran dibuat di akun yang Anda gunakan untuk masuk ke konsol atau menjalankan AWS CLI perintah.

penting

Jika Anda mendaftarkan instance eksternal ke cluster Anda, peran IAM yang Anda gunakan memerlukan izin Manajer Sistem juga. Untuk informasi selengkapnya, lihat Peran IAM Amazon ECS Anywhere.

Amazon ECS menyediakan kebijakan I AmazonEC2ContainerServiceforEC2Role AM terkelola yang berisi izin yang diperlukan untuk menggunakan set fitur Amazon ECS lengkap. Kebijakan terkelola ini dapat dilampirkan ke peran IAM dan dikaitkan dengan instans kontainer Anda. Atau, Anda dapat menggunakan kebijakan terkelola sebagai panduan saat membuat kebijakan kustom untuk digunakan. Peran instance kontainer memberikan izin yang diperlukan untuk agen kontainer Amazon ECS dan daemon Docker untuk memanggil AWS API atas nama Anda. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat AmazonEC2ContainerServiceforEC2Role.

Buat peran instance kontainer

penting

Jika Anda mendaftarkan instans eksternal untuk klaster Anda, lihat Peran IAM Amazon ECS Anywhere.

Anda dapat membuat peran secara manual dan melampirkan kebijakan IAM terkelola untuk instans kontainer agar Amazon ECS dapat menambahkan izin untuk fitur dan penyempurnaan di masa mendatang saat diperkenalkan. Gunakan prosedur berikut untuk melampirkan kebijakan IAM terkelola jika diperlukan.

Konsol Manajemen AWS
Untuk membuat peran layanan untuk Elastic Container Service (konsol IAM)
  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi konsol IAM, pilih Peran, dan lalu pilih Buat peran.

  3. Untuk Ti pe entitas tepercaya, pilih Layanan AWS.

  4. Untuk Layanan atau kasus penggunaan, pilih Elastic Container Service, lalu pilih Peran EC2 untuk kasus penggunaan Layanan Kontainer Elastic.

  5. Pilih Berikutnya.

  6. Di bagian Kebijakan izin, verifikasi bahwa AmazonEC2ContainerServiceforEC2Role kebijakan dipilih.

    penting

    Kebijakan AmazonEC2ContainerServiceforEC2Role terkelola harus dilampirkan ke peran IAM instance kontainer, jika tidak, Anda akan menerima kesalahan saat menggunakan Konsol Manajemen AWS untuk membuat cluster.

  7. Pilih Berikutnya.

  8. Untuk Nama Peran, masukkan ecs InstanceRole

  9. Tinjau peran lalu pilih Buat peran.

AWS CLI

Ganti semua user input dengan nilai-nilai Anda sendiri.

  1. Buat file bernama instance-role-trust-policy.json dengan konten berikut.

    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }
  2. Gunakan perintah berikut untuk membuat peran IAM instance menggunakan dokumen kebijakan kepercayaan.

    aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://instance-role-trust-policy.json
  3. Buat profil instans dengan nama ecsInstanceRole-profile menggunakan perintah create-instans-profile.

    aws iam create-instance-profile --instance-profile-name ecsInstanceRole-profile

    Contoh tanggapan

    { "InstanceProfile": { "InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE", "Roles": [], "CreateDate": "2022-04-12T23:53:34.093Z", "InstanceProfileName": "ecsInstanceRole-profile", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole-profile" } }
  4. Tambahkan peran ecsInstanceRole pada profil instans ecsInstanceRole-profile.

    aws iam add-role-to-instance-profile \ --instance-profile-name ecsInstanceRole-profile \ --role-name ecsInstanceRole
  5. Lampirkan AmazonEC2ContainerServiceForEC2Role kebijakan terkelola ke peran menggunakan perintah berikut.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \ --role-name ecsInstanceRole

Setelah Anda membuat peran, tambahkan izin tambahan ke peran untuk fitur berikut.

Fitur Izin tambahan

Amazon ECR memiliki gambar wadah

Izin Amazon ECR

Minta CloudWatch Log memantau instance kontainer

Memantau izin instans kontainer

Meng-host file konfigurasi dalam bucket Amazon S3

Akses baca-saja Amazon S3

Izin Amazon ECR

Peran instance container Amazon ECS yang Anda gunakan dengan instans kontainer harus memiliki izin kebijakan IAM berikut untuk Amazon ECR.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }

Jika Anda menggunakan kebijakan terkelola AmazonEC2ContainerServiceforEC2Role untuk instans kontainer Anda, maka peran anda memiliki izin yang tepat.

Izin diperlukan untuk mengatur pengaturan akun AWSVPCTrunking

Amazon ECS mendukung peluncuran instans kontainer dengan kepadatan ENI yang meningkat menggunakan jenis instans Amazon EC2 yang didukung. Saat Anda menggunakan fitur ini, kami sarankan Anda membuat 2 peran instance kontainer. Aktif awsvpcTrunking kan pengaturan akun untuk satu peran dan gunakan peran itu untuk tugas yang memerlukan trunking ENI. Untuk informasi tentang pengaturan awsvpcTrunking akun, lihatAkses fitur Amazon ECS dengan pengaturan akun.

Peran instance kontainer yang Anda gunakan dengan instans kontainer harus memiliki izin kebijakan IAM berikut untuk menyetel setelan akun

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:ListAccountSettings", "ecs:ListAttributes", "ecs:PutAccountSetting" ], "Resource": "*" } ] }

Untuk menggunakan peran instance container, tambahkan yang berikut ini ke data pengguna instance:

#!/bin/bash aws ecs put-account-setting --name awsvpcTrunking --value enabled --region region ECS_CLUSTER=MyCluster>> /etc/ecs/ecs.config EOF

Untuk informasi selengkapnya tentang menambahkan data pengguna ke instans EC2 Anda, lihat Men jalankan perintah pada instans Linux Anda saat diluncurkan di Panduan Pengguna Amazon EC2.

Akses baca-saja Amazon S3

Menyimpan informasi konfigurasi dalam bucket pribadi di Amazon S3 dan memberikan akses baca-saja ke peran IAM instans kontainer Anda adalah cara yang aman dan nyaman untuk mengizinkan konfigurasi instance kontainer pada waktu peluncuran. Anda dapat menyimpan salinan ecs.config file Anda di bucket pribadi, menggunakan data pengguna Amazon EC2 untuk menginstal AWS CLI dan kemudian menyalin informasi konfigurasi Anda ke /etc/ecs/ecs.config saat instance diluncurkan.

Untuk informasi selengkapnya tentang membuat ecs.config file, menyimpannya di Amazon S3, dan meluncurkan instance dengan konfigurasi ini, lihatMenyimpan konfigurasi instance kontainer Amazon ECS di Amazon S3.

Anda dapat menggunakan AWS CLI perintah berikut untuk mengizinkan akses baca-saja Amazon S3 untuk peran instance kontainer Anda. Ganti ecsInstanceRole dengan nama peran yang Anda buat.

aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

Anda juga dapat menggunakan konsol IAM untuk menambahkan akses baca-saja Amazon S3 (AmazonS3ReadOnlyAccess) ke peran Anda. Untuk informasi selengkapnya, lihat Memperbarui izin untuk peran dalam Panduan AWS Identity and Access Management Pengguna.

Memantau izin instans kontainer

Sebelum instans kontainer Anda dapat mengirim data CloudWatch log ke Log, Anda harus membuat kebijakan IAM untuk mengizinkan agen Amazon ECS menulis log aplikasi pelanggan ke CloudWatch (biasanya ditangani melalui awslogs driver). Setelah Anda membuat kebijakan, lampirkan kebijakan tersebut keecsInstanceRole.

Konsol Manajemen AWS
Cara menggunakan editor kebijakan JSON untuk membuat kebijakan
  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Pada panel navigasi di sebelah kiri, pilih Kebijakan.

    Jika ini pertama kalinya Anda memilih Kebijakan, akan muncul halaman Selamat Datang di Kebijakan Terkelola. Pilih Memulai.

  3. Di bagian atas halaman, pilih Buat kebijakan.

  4. Di bagian Editor kebijakan, pilih opsi JSON.

  5. Masukkan dokumen kebijakan JSON berikut:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  6. Pilih Berikutnya.

    catatan

    Anda dapat beralih antara opsi editor Visual dan JSON kapan saja. Namun, jika Anda melakukan perubahan atau memilih Berikutnya di editor Visual, IAM dapat merestrukturisasi kebijakan Anda untuk mengoptimalkannya bagi editor visual. Untuk informasi selengkapnya, lihat Restrukturisasi kebijakan dalam Panduan Pengguna IAM.

  7. Pada halaman Tinjau dan buat, masukkan Nama kebijakan dan Deskripsi (opsional) untuk kebijakan yang Anda buat. Tinjau Izin yang ditentukan dalam kebijakan ini untuk melihat izin yang diberikan oleh kebijakan Anda.

  8. Pilih Buat kebijakan untuk menyimpan kebijakan baru Anda.

Setelah Anda membuat kebijakan, lampirkan kebijakan ke peran instance kontainer. Untuk informasi tentang cara melampirkan kebijakan ke peran, lihat Memperbarui izin untuk peran di Panduan AWS Identity and Access Management Pengguna.

AWS CLI
  1. Buat file bernama instance-cw-logs.json dengan konten berikut.

    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  2. Gunakan perintah berikut untuk membuat kebijakan IAM menggunakan file dokumen kebijakan JSON.

    aws iam create-policy \ --policy-name cwlogspolicy \ --policy-document file://instance-cw-logs.json
  3. Ambil ARN dari kebijakan IAM yang Anda buat menggunakan perintah berikut. Ganti cwlogspolicy dengan nama kebijakan yang Anda buat.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cwlogspolicy`].Arn'
  4. Gunakan perintah berikut untuk melampirkan kebijakan ke peran IAM instance kontainer menggunakan kebijakan ARN.

    aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cwlogspolicy