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

Sebelum Anda dapat menggunakan jenis penyebaran CodeDeploy biru/hijau dengan Amazon ECS, layanan ini memerlukan izin untuk memperbarui CodeDeploy layanan Amazon ECS Anda atas nama Anda. Izin ini disediakan oleh peran CodeDeploy IAM ()ecsCodeDeployRole.

catatan

Pengguna juga memerlukan izin untuk digunakan CodeDeploy; izin ini dijelaskan dalam. Penerapan biru/hijau memerlukan izin IAM

Ada dua kebijakan terkelola yang disediakan. AWSCodeDeployRoleForECSKebijakan, yang ditunjukkan di bawah ini, memberikan CodeDeploy izin untuk memperbarui sumber daya apa pun menggunakan tindakan terkait. AWSCodeDeployRoleForECSLimitedKebijakan, yang ditunjukkan di bawah ini, memberikan izin yang CodeDeploy lebih terbatas.

AWSCodeDeployRoleForECS
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:UpdateServicePrimaryTaskSet", "ecs:DeleteTaskSet", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule", "lambda:InvokeFunction", "cloudwatch:DescribeAlarms", "sns:Publish", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*", "Effect": "Allow" }, { "Action": ["iam:PassRole"], "Effect": "Allow", "Resource": "*", "Condition": { "StringLike": { "iam:PassedToService": ["ecs-tasks.amazonaws.com"] } } } ] }
AWSCodeDeployRoleForECSLimited
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:UpdateServicePrimaryTaskSet", "ecs:DeleteTaskSet", "cloudwatch:DescribeAlarms" ], "Resource": "*", "Effect": "Allow" }, { "Action": ["sns:Publish"], "Resource": "arn:aws:sns:*:*:CodeDeployTopic_*", "Effect": "Allow" }, { "Action": [ "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule" ], "Resource": "*", "Effect": "Allow" }, { "Action": ["lambda:InvokeFunction"], "Resource": "arn:aws:lambda:*:*:function:CodeDeployHook_*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*", "Condition": { "StringEquals": {"s3:ExistingObjectTag/UseWithCodeDeploy": "true"} }, "Effect": "Allow" }, { "Action": ["iam:PassRole"], "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsTaskExecutionRole", "arn:aws:iam::*:role/ECSTaskExecution*" ], "Condition": { "StringLike": { "iam:PassedToService": ["ecs-tasks.amazonaws.com"] } } } ] }

Menciptakan CodeDeploy AWSCodeDeployRoleForECS peran

Anda dapat menggunakan prosedur berikut untuk membuat CodeDeploy peran untuk Amazon ECS

AWS Management Console
Untuk membuat peran layanan untuk CodeDeploy (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 kasus Layanan atau penggunaan, pilih CodeDeploy, lalu pilih kasus penggunaan CodeDeploy - ECS.

  5. Pilih Berikutnya.

  6. Di bagian Lampirkan kebijakan izin, pastikan AWSCodeDeployRoleForECSkebijakan dipilih.

  7. (Opsional) Tetapkan batas izin. Ini adalah fitur lanjutan yang tersedia untuk peran layanan, tetapi bukan peran tertaut layanan.

    1. Buka bagian Setel batas izin, lalu pilih Gunakan batas izin untuk mengontrol izin peran maksimum.

      IAM menyertakan daftar kebijakan yang AWS dikelola dan dikelola pelanggan di akun Anda.

    2. Pilih kebijakan yang akan digunakan untuk batas izin.

  8. Pilih Berikutnya.

  9. Masukkan nama peran atau akhiran nama peran untuk membantu Anda mengidentifikasi tujuan peran.

    penting

    Saat Anda memberi nama peran, perhatikan hal berikut:

    • Nama peran harus unik di dalam diri Anda Akun AWS, dan tidak dapat dibuat unik berdasarkan kasus.

      Misalnya, jangan membuat peran bernama keduanya PRODROLE danprodrole. Ketika nama peran digunakan dalam kebijakan atau sebagai bagian dari ARN, nama peran tersebut peka huruf besar/kecil, namun ketika nama peran muncul kepada pelanggan di konsol, seperti selama proses masuk, nama peran tersebut tidak peka huruf besar/kecil.

    • Anda tidak dapat mengedit nama peran setelah dibuat karena entitas lain mungkin mereferensikan peran tersebut.

  10. (Opsional) Untuk Deskripsi, masukkan deskripsi untuk peran tersebut.

  11. (Opsional) Untuk mengedit kasus penggunaan dan izin untuk peran, di Langkah 1: Pilih entitas tepercaya atau Langkah 2: Tambahkan izin, pilih Edit.

  12. (Opsional) Untuk membantu mengidentifikasi, mengatur, atau mencari peran, tambahkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang penggunaan tanda di IAM, lihat Menandai sumber daya IAM di Panduan Pengguna IAM.

  13. Tinjau peran lalu pilih Buat peran.

AWS CLI

Ganti semua input pengguna dengan informasi Anda sendiri.

  1. Buat file bernama codedeploy-trust-policy.json yang berisi kebijakan kepercayaan yang akan digunakan untuk peran CodeDeploy IAM.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": ["codedeploy.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }
  2. Buat peran IAM bernama ecsCodedeployRole menggunakan kebijakan kepercayaan yang dibuat pada langkah sebelumnya.

    aws iam create-role \ --role-name ecsCodedeployRole \ --assume-role-policy-document file://codedeploy-trust-policy.json
  3. Lampirkan kebijakan AWSCodeDeployRoleForECS atau AWSCodeDeployRoleForECSLimited terkelola ke ecsTaskRole peran tersebut.

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws::iam::aws:policy/AWSCodeDeployRoleForECS
    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws::iam::aws:policy/AWSCodeDeployRoleForECSLimited

Menambahkan izin untuk penerapan biru/hijau

Jika tugas di layanan Amazon ECS menggunakan tipe penerapan biru/hijau memerlukan penggunaan peran eksekusi tugas atau penggantian peran tugas, Anda harus menambahkan iam:PassRole izin untuk setiap peran eksekusi tugas atau penggantian peran tugas ke peran IAM sebagai kebijakan. CodeDeploy Lihat informasi yang lebih lengkap di Peran IAM eksekusi tugas Amazon ECS dan Tugas peran IAM.

Gunakan prosedur berikut untuk membuat kebijakan

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": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }
  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 CodeDeploy peran. Untuk informasi tentang cara melampirkan kebijakan ke peran, lihat Memodifikasi kebijakan izin peran (konsol) di AWS Identity and Access Management Panduan Pengguna.

AWS CLI

Ganti semua input pengguna dengan informasi Anda sendiri.

  1. Buat file bernama blue-green-iam-passrole.json dengan konten berikut.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }
  2. Gunakan perintah berikut untuk membuat kebijakan IAM menggunakan file dokumen kebijakan JSON.

    aws iam create-policy \ --policy-name cdTaskExecutionPolicy \ --policy-document file://blue-green-iam-passrole.json
  3. Ambil ARN dari kebijakan IAM yang Anda buat menggunakan perintah berikut.

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

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy