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 AmazonEC2ContainerServiceforEC2Role kebijakan IAM 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 memanggil agen kontainer Amazon ECS dan daemon Docker 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 Jenis entitas tepercaya, pilih Layanan AWS.

  4. Untuk Kasus layanan atau penggunaan, pilih Layanan Kontainer Elastis, dan kemudian pilih Peran EC2 untuk Layanan Kontainer Elastis kasus penggunaan.

  5. Pilih Berikutnya.

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

    penting

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

  7. Pilih Berikutnya.

  8. Untuk Nama peran, masukkan ecsInstanceRole

  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. Pasang AmazonEC2ContainerServiceForEC2Role kebijakan yang dikelola 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

Memiliki 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. Aktifkan awsvpcTrunking pengaturan akun untuk satu peran dan gunakan peran itu untuk tugas yang memerlukan trunking ENI. Untuk informasi tentang awsvpcTrunking pengaturan akun, lihat Akses 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 Jalankan perintah pada instance Linux Anda saat peluncuran 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 dalam bucket pribadi, gunakan data pengguna Amazon EC2 untuk menginstal AWS CLI lalu salin informasi konfigurasi Anda ke /etc/ecs/ecs.config saat instance diluncurkan.

Untuk informasi lebih lanjut tentang membuat ecs.config berkas, menyimpannya di Amazon S3, dan meluncurkan instance dengan konfigurasi ini, lihat Menyimpan konfigurasi instance kontainer Amazon ECS di Amazon S3.

Anda dapat menggunakan yang berikut AWS CLI perintah 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) untuk peran Anda. Untuk informasi lebih lanjut, lihat Memperbarui izin untuk peran di AWS Identity and Access Management Panduan Pengguna.

Memantau izin instans kontainer

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

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 AWS Identity and Access Management Panduan 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