Langkah 2: Buat peran layanan untuk CodeDeploy - AWS CodeDeploy

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

Langkah 2: Buat peran layanan untuk CodeDeploy

Di AWS, peran layanan digunakan untuk memberikan izin ke AWS layanan sehingga dapat mengakses AWS sumber daya. Kebijakan yang Anda lampirkan ke peran layanan menentukan sumber daya mana layanan dapat mengakses dan yang dapat dilakukan dengan sumber daya tersebut.

Peran layanan yang Anda buat CodeDeploy harus diberikan izin yang diperlukan untuk platform komputasi Anda. Jika Anda menerapkan ke lebih dari satu platform komputasi, buat satu peran layanan untuk masing-masing. Untuk menambahkan izin, lampirkan satu atau beberapa kebijakan yang AWS disediakan berikut:

Untuk penerapan EC2/Lokal, lampirkan kebijakan. AWSCodeDeployRole Ini memberikan izin untuk peran layanan Anda untuk:

  • Baca tag pada instans Anda atau identifikasi instans Amazon EC2 Anda dengan nama grup Amazon EC2 Auto Scaling.

  • Baca, buat, perbarui, dan hapus grup Auto Scaling Amazon EC2, kait siklus hidup, dan kebijakan penskalaan.

  • Publikasikan informasi ke topik Amazon SNS.

  • Ambil informasi tentang CloudWatch alarm.

  • Baca dan perbarui Elastic Load Balancing.

    catatan

    Jika Anda membuat grup Auto Scaling dengan template peluncuran, Anda harus menambahkan izin berikut:

    • ec2:RunInstances

    • ec2:CreateTags

    • iam:PassRole

    Untuk informasi selengkapnya, lihatLangkah 2: Buat peran layanan, Membuat template peluncuran untuk grup Auto Scaling, dan Luncurkan dukungan template di Panduan Pengguna Auto Scaling Amazon EC2.

Untuk penerapan Amazon ECS, jika Anda ingin akses penuh ke layanan dukungan, lampirkan kebijakan. AWSCodeDeployRoleForECS Ini memberikan izin untuk peran layanan Anda untuk:

  • Baca, perbarui, dan hapus set tugas Amazon ECS.

  • Perbarui grup target Elastic Load Balancing, pendengar, dan aturan.

  • Memanggil AWS Lambda fungsi.

  • Akses file revisi di bucket Amazon S3.

  • Ambil informasi tentang CloudWatch alarm.

  • Publikasikan informasi ke topik Amazon SNS.

Untuk penerapan Amazon ECS, jika Anda ingin akses terbatas ke layanan dukungan, lampirkan kebijakan. AWSCodeDeployRoleForECSLimited Ini memberikan izin untuk peran layanan Anda untuk:

  • Baca, perbarui, dan hapus set tugas Amazon ECS.

  • Ambil informasi tentang CloudWatch alarm.

  • Publikasikan informasi ke topik Amazon SNS.

Untuk penerapan AWS Lambda, jika Anda ingin mengizinkan penerbitan ke Amazon SNS, lampirkan kebijakan. AWSCodeDeployRoleForLambda Ini memberikan izin untuk peran layanan Anda untuk:

  • Baca, perbarui, dan panggil AWS Lambda fungsi dan alias.

  • Akses file revisi di bucket Amazon S3.

  • Ambil informasi tentang CloudWatch alarm.

  • Publikasikan informasi ke topik Amazon SNS.

Untuk penerapan AWS Lambda, jika Anda ingin membatasi akses ke Amazon SNS, lampirkan kebijakan. AWSCodeDeployRoleForLambdaLimited Ini memberikan izin untuk peran layanan Anda untuk:

  • Baca, perbarui, dan panggil AWS Lambda fungsi dan alias.

  • Akses file revisi di bucket Amazon S3.

  • Ambil informasi tentang CloudWatch alarm.

Sebagai bagian dari pengaturan peran layanan, Anda juga memperbarui hubungan kepercayaannya untuk menentukan titik akhir yang ingin Anda berikan aksesnya.

Anda dapat membuat peran layanan dengan konsol IAM, API IAM AWS CLI, atau IAM.

Buat peran layanan (konsol)

  1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Peran, lalu pilih Buat peran.

  3. Pilih AWS layanan, dan di bawah Kasus penggunaan, dari daftar drop-down, pilih CodeDeploy.

  4. Pilih kasus penggunaan Anda:

    • Untuk penerapan EC2/Lokal, pilih. CodeDeploy

    • Untuk penerapan AWS Lambda, pilih Lambda. CodeDeploy

    • Untuk penerapan Amazon ECS, pilih CodeDeploy - ECS.

  5. Pilih Selanjutnya.

  6. Pada halaman Tambahkan izin, kebijakan izin yang benar untuk kasus penggunaan ditampilkan. Pilih Selanjutnya.

  7. Pada halaman Nama, tinjau, dan buat, di Nama peran, masukkan nama untuk peran layanan (misalnya,CodeDeployServiceRole), lalu pilih Buat peran.

    Anda juga dapat memasukkan deskripsi untuk peran layanan ini di Deskripsi peran.

  8. Jika Anda ingin peran layanan ini memiliki izin untuk mengakses semua titik akhir yang didukung saat ini, Anda selesai dengan prosedur ini.

    Untuk membatasi peran layanan ini dari akses ke beberapa titik akhir, lanjutkan dengan langkah-langkah yang tersisa dalam prosedur ini.

  9. Dalam daftar peran, cari dan pilih peran yang baru saja Anda buat (CodeDeployServiceRole).

  10. Pilih tab Trust relationship.

  11. Pilih Edit kebijakan kepercayaan.

    Anda akan melihat kebijakan berikut, yang menyediakan izin peran layanan untuk mengakses semua titik akhir yang didukung:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    Untuk memberikan akses peran layanan ke hanya beberapa titik akhir yang didukung, ganti isi kotak teks kebijakan kepercayaan dengan kebijakan berikut. Hapus baris untuk titik akhir yang ingin Anda cegah aksesnya, lalu pilih Perbarui kebijakan.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.ap-east-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-northeast-3.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-southeast-3.amazonaws.com", "codedeploy.ap-southeast-4.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.ap-south-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.eu-central-2.amazonaws.com", "codedeploy.eu-north-1.amazonaws.com", "codedeploy.eu-south-1.amazonaws.com", "codedeploy.eu-south-2.amazonaws.com", "codedeploy.il-central-1.amazonaws.com", "codedeploy.me-central-1.amazonaws.com", "codedeploy.me-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Untuk informasi selengkapnya tentang membuat peran layanan, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan Pengguna IAM.

Buat peran layanan (CLI)

  1. Pada mesin pengembangan Anda, buat file teks bernama, misalnya,CodeDeployDemo-Trust.json. File ini digunakan untuk memungkinkan CodeDeploy untuk bekerja atas nama Anda.

    Lakukan salah satu hal berikut ini:

    • Untuk memberikan akses ke semua AWS Wilayah yang didukung, simpan konten berikut dalam file:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    • Untuk memberikan akses ke hanya beberapa wilayah yang didukung, ketik konten berikut ke dalam file, dan hapus baris untuk wilayah yang ingin Anda kecualikan aksesnya:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.ap-east-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-northeast-3.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-southeast-3.amazonaws.com", "codedeploy.ap-southeast-4.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.ap-south-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.eu-central-2.amazonaws.com", "codedeploy.eu-north-1.amazonaws.com", "codedeploy.eu-south-1.amazonaws.com", "codedeploy.eu-south-2.amazonaws.com", "codedeploy.il-central-1.amazonaws.com", "codedeploy.me-central-1.amazonaws.com", "codedeploy.me-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
      catatan

      Jangan gunakan koma setelah titik akhir terakhir dalam daftar.

  2. Dari direktori yang sama, panggil create-role perintah untuk membuat peran layanan bernama CodeDeployServiceRole berdasarkan informasi dalam file teks yang baru saja Anda buat:

    aws iam create-role --role-name CodeDeployServiceRole --assume-role-policy-document file://CodeDeployDemo-Trust.json
    penting

    Pastikan untuk menyertakan file:// sebelum nama file. Diperlukan dalam perintah ini.

    Dalam output perintah, catat nilai Arn entri di bawah Role objek. Anda membutuhkannya nanti saat membuat grup penerapan. Jika Anda lupa nilainya, ikuti instruksi diDapatkan peran layanan ARN (CLI) .

  3. Kebijakan terkelola yang Anda gunakan bergantung pada platform komputasi.

    • Jika penerapan Anda ke platform komputasi EC2/Lokal:

      Panggil attach-role-policy perintah untuk memberikan peran layanan bernama CodeDeployServiceRole izin berdasarkan kebijakan terkelola IAM yang dinamai. AWSCodeDeployRole Sebagai contoh:

      aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole
    • Jika penerapan Anda ke platform komputasi AWS Lambda:

      Panggil attach-role-policy perintah untuk memberikan peran layanan bernama CodeDeployServiceRole izin berdasarkan kebijakan terkelola IAM bernama AWSCodeDeployRoleForLambda atau. AWSCodeDeployRoleForLambdaLimited Sebagai contoh:

      aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda
    • Jika penerapan Anda ke platform komputasi Amazon ECS:

      Panggil attach-role-policy perintah untuk memberikan peran layanan bernama CodeDeployServiceRole izin berdasarkan kebijakan terkelola IAM bernama AWSCodeDeployRoleForECS atau. AWSCodeDeployRoleForECSLimited Sebagai contoh:

      aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS

Untuk informasi selengkapnya tentang membuat peran layanan, lihat Membuat peran untuk AWS layanan di Panduan Pengguna IAM.

Dapatkan peran layanan ARN (konsol)

Untuk menggunakan konsol IAM untuk mendapatkan ARN dari peran layanan:

  1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Peran.

  3. Di kotak Filter, ketikCodeDeployServiceRole, lalu tekan Enter.

  4. Pilih CodeDeployServiceRole.

  5. Catat nilai bidang ARN Peran.

Dapatkan peran layanan ARN (CLI)

Untuk menggunakan AWS CLI untuk mendapatkan ARN dari peran layanan, panggil get-role perintah terhadap peran layanan bernama: CodeDeployServiceRole

aws iam get-role --role-name CodeDeployServiceRole --query "Role.Arn" --output text

Nilai yang dikembalikan adalah ARN dari peran layanan.