Peran IAM instance wadah 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 instance wadah Amazon ECS

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

penting

Jika Anda mendaftarkan instance eksternal ke klaster, peran IAM yang Anda gunakan juga memerlukan izin Systems Manager. Untuk informasi selengkapnya, lihat Peran IAM Amazon ECS Anywhere.

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

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 instance container agar Amazon ECS dapat menambahkan izin untuk fitur dan penyempurnaan future saat diperkenalkan. Gunakan prosedur berikut untuk melampirkan kebijakan IAM terkelola jika diperlukan.

AWS Management Console
Untuk membuat peran layanan untuk Elastic Container Service (konsol IAM)
  1. Masuk ke AWS Management Console 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 Service atau use case, pilih Elastic Container Service, lalu pilih EC2 Role for Elastic Container Service use case.

  5. Pilih Berikutnya.

  6. Di bagian Kebijakan izin, verifikasi bahwa kebijakan EC2ContainerServiceforEC2Peran Amazon dipilih.

    penting

    Kebijakan terkelola EC2ContainerServiceforEC2Peran Amazon harus dilampirkan ke peran IAM instance container, jika tidak, Anda akan menerima error menggunakan AWS Management Console 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 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 instance bernama ecsInstanceRole-profile menggunakan create-instance-profileperintah.

    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 kebijakan AmazonEC2ContainerServiceRoleForEC2Role 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 kontainer

Izin Amazon ECR

Minta CloudWatch Log memantau instance kontainer

Memantau izin instance kontainer

Host file konfigurasi dalam bucket Amazon S3

Akses hanya-baca Amazon S3

Izin Amazon ECR

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

{ "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. Untuk memeriksa apakah peran Anda mendukung Amazon ECR, lihat Peran IAM Instance Amazon ECS Container di Panduan Pengembang Layanan Kontainer Elastis Amazon.

Izin yang diperlukan untuk menyetel pengaturan akun AWSVPCtrunking

Amazon ECS mendukung peluncuran instans kontainer dengan peningkatan kepadatan ENI menggunakan jenis EC2 instans Amazon yang didukung. Saat Anda menggunakan fitur ini, kami sarankan Anda membuat 2 peran instance container. Aktifkan pengaturan awsvpcTrunking 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 container yang Anda gunakan dengan instance container harus memiliki izin kebijakan IAM berikut untuk menyetel setelan akun

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

Untuk menggunakan peran instance conatiner, 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 EC2 instans Anda, lihat Menjalankan perintah pada instans Linux saat diluncurkan di Panduan EC2 Pengguna Amazon.

Akses hanya-baca Amazon S3

Menyimpan informasi konfigurasi dalam bucket pribadi di Amazon S3 dan memberikan akses hanya-baca ke peran IAM instance container Anda adalah cara yang aman dan nyaman untuk mengizinkan konfigurasi instance container pada waktu peluncuran. Anda dapat menyimpan salinan ecs.config file Anda dalam bucket pribadi, menggunakan data EC2 pengguna Amazon 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, lihat. Menyimpan konfigurasi instans penampung Amazon ECS di Amazon S3

Anda dapat menggunakan AWS CLI perintah berikut untuk mengizinkan akses hanya-baca Amazon S3 untuk peran instance container 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 AmazonS3ReadOnlyAccess () hanya-baca Amazon S3 ke peran Anda. Untuk informasi selengkapnya, lihat Memperbarui izin untuk peran dalam Panduan AWS Identity and Access Management Pengguna.

Memantau izin instance kontainer

Sebelum instans penampung Anda dapat mengirim data CloudWatch log ke Log, Anda harus membuat kebijakan IAM agar agen Amazon ECS dapat menulis log aplikasi pelanggan CloudWatch (biasanya ditangani melalui driver). awslogs Setelah Anda membuat kebijakan, lampirkan kebijakan tersebutecsInstanceRole.

AWS Management Console
Cara menggunakan editor kebijakan JSON untuk membuat kebijakan
  1. Masuk ke AWS Management Console 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 container. Untuk informasi tentang cara melampirkan kebijakan ke peran, lihat Memperbarui izin untuk peran dalam 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 container menggunakan ARN kebijakan.

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