Langkah 4: Buat profil instans IAM untuk instans Amazon EC2 Anda - AWS CodeDeploy

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

Langkah 4: Buat profil instans IAM untuk instans Amazon EC2 Anda

catatan

Jika Anda menggunakan platform komputasi Amazon ECS atau AWS Lambda, lewati langkah ini.

Instans Amazon EC2 Anda memerlukan izin untuk mengakses bucket atau GitHub repositori Amazon S3 tempat aplikasi disimpan. Untuk meluncurkan instans Amazon EC2 yang kompatibel dengannya CodeDeploy, Anda harus membuat peran IAM tambahan, profil instans. Petunjuk ini menunjukkan cara membuat profil instans IAM untuk dilampirkan ke instans Amazon EC2 Anda. Peran ini memberikan izin CodeDeploy agen untuk mengakses bucket atau GitHub repositori Amazon S3 tempat aplikasi Anda disimpan.

Anda dapat membuat profil instans IAM dengan AWS CLI, konsol IAM, atau API IAM.

catatan

Anda dapat melampirkan profil instans IAM ke instans Amazon EC2 saat meluncurkannya atau ke instans yang diluncurkan sebelumnya. Untuk informasi selengkapnya, lihat Profil instans.

Buat profil instans IAM untuk instans Amazon EC2 (CLI)

Dalam langkah-langkah ini, kami berasumsi Anda telah mengikuti instruksi dalam tiga langkah pertamaMemulai dengan CodeDeploy.

  1. Pada mesin pengembangan Anda, buat file teks bernamaCodeDeployDemo-EC2-Trust.json. Tempel konten berikut, yang memungkinkan Amazon EC2 berfungsi atas nama Anda:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Di direktori yang sama, buat file teks bernamaCodeDeployDemo-EC2-Permissions.json. Tempel konten berikut:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    catatan

    Kami menyarankan Anda membatasi kebijakan ini hanya untuk bucket Amazon S3 yang harus diakses instans Amazon EC2 Anda. Pastikan untuk memberikan akses ke bucket Amazon S3 yang berisi agen. CodeDeploy Jika tidak, kesalahan dapat terjadi ketika CodeDeploy agen diinstal atau diperbarui pada instance. Untuk memberikan akses profil instans IAM hanya ke beberapa bucket kit CodeDeploy sumber daya di Amazon S3, gunakan kebijakan berikut, tetapi hapus baris untuk bucket yang ingin Anda cegah aksesnya:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    catatan

    Jika Anda ingin menggunakan otorisasi IAM atau titik akhir CodeDeploy Amazon Virtual Private Cloud (VPC), Anda perlu menambahkan lebih banyak izin. Lihat Menggunakan CodeDeploy dengan Amazon Virtual Private Cloud untuk informasi selengkapnya.

  3. Dari direktori yang sama, panggil create-role perintah untuk membuat peran IAM bernamaCodeDeployDemo-EC2-Instance-Profile, berdasarkan informasi di file pertama:

    penting

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

    aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
  4. Dari direktori yang sama, panggil put-role-policy perintah untuk memberikan peran bernama CodeDeployDemo-EC2-Instance-Profile izin berdasarkan informasi dalam file kedua:

    penting

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

    aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json
  5. Hubungi attach-role-policy untuk memberikan peran izin Amazon EC2 Systems Manager sehingga SSM dapat menginstal agen. CodeDeploy Kebijakan ini tidak diperlukan jika Anda berencana untuk menginstal agen dari bucket Amazon S3 publik dengan baris perintah. Pelajari lebih lanjut tentang menginstal CodeDeploy agen.

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
  6. Panggil create-instance-profile perintah diikuti dengan add-role-to-instance-profile perintah untuk membuat profil instans IAM bernamaCodeDeployDemo-EC2-Instance-Profile. Profil instans memungkinkan Amazon EC2 meneruskan peran IAM yang diberi nama CodeDeployDemo-EC2-Instance-Profile ke instans Amazon EC2 saat instans pertama kali diluncurkan:

    aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile

    Jika Anda perlu mendapatkan nama profil instans IAM, lihat list-instance-profiles-for-role di bagian IAM Referensi.AWS CLI

Anda sekarang telah membuat profil instans IAM untuk dilampirkan ke instans Amazon EC2 Anda. Untuk informasi selengkapnya, lihat peran IAM untuk Amazon EC2 di Panduan Pengguna Amazon EC2.

Membuat profil instans IAM untuk instans Amazon EC2 (konsol)

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

  2. Dalam kolom IAM, dalam panel navigas, pilih Kebijakan, lalu pilih Buat kebijakan.

  3. Pada halaman Tentukan izin, pilih JSON.

  4. Hapus JSON kode contoh.

  5. Tempel kode berikut:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    catatan

    Kami menyarankan Anda membatasi kebijakan ini hanya untuk bucket Amazon S3 yang harus diakses instans Amazon EC2 Anda. Pastikan untuk memberikan akses ke bucket Amazon S3 yang berisi agen. CodeDeploy Jika tidak, kesalahan dapat terjadi ketika CodeDeploy agen diinstal atau diperbarui pada instance. Untuk memberikan akses profil instans IAM hanya ke beberapa bucket kit CodeDeploy sumber daya di Amazon S3, gunakan kebijakan berikut, tetapi hapus baris untuk bucket yang ingin Anda cegah aksesnya:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    catatan

    Jika Anda ingin menggunakan otorisasi IAM atau titik akhir CodeDeploy Amazon Virtual Private Cloud (VPC), Anda perlu menambahkan lebih banyak izin. Lihat Menggunakan CodeDeploy dengan Amazon Virtual Private Cloud untuk informasi selengkapnya.

  6. Pilih Selanjutnya.

  7. Pada halaman Tinjau dan buat, di kotak Nama kebijakan, ketikCodeDeployDemo-EC2-Permissions.

  8. (Opsional) Untuk Deskripsi, ketik deskripsi untuk kebijakan.

  9. Pilih Buat kebijakan.

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

  11. Di bawah Kasus penggunaan, pilih kasus penggunaan EC2.

  12. Pilih Selanjutnya.

  13. Dalam daftar kebijakan, pilih kotak centang di samping kebijakan yang baru saja Anda buat (CodeDeployDemo-EC2-Permissions). Jika perlu, gunakan kotak pencarian untuk menemukan kebijakan.

  14. Untuk menggunakan Systems Manager untuk menginstal atau mengkonfigurasi CodeDeploy agen, pilih kotak centang di sebelah AmazonSSM ManagedInstanceCore. Kebijakan AWS terkelola ini memungkinkan instance untuk menggunakan fungsionalitas inti layanan Systems Manager. Jika perlu, gunakan kotak pencarian untuk menemukan kebijakan. Kebijakan ini tidak diperlukan jika Anda berencana untuk menginstal agen dari bucket Amazon S3 publik dengan baris perintah. Pelajari lebih lanjut tentang menginstal CodeDeploy agen.

  15. Pilih Selanjutnya.

  16. Pada halaman Nama, tinjau, dan buat, di Nama peran, masukkan nama untuk peran layanan (misalnya,CodeDeployDemo-EC2-Instance-Profile), lalu pilih Buat peran.

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

Anda sekarang telah membuat profil instans IAM untuk dilampirkan ke instans Amazon EC2 Anda. Untuk informasi selengkapnya, lihat peran IAM untuk Amazon EC2 di Panduan Pengguna Amazon EC2.