Identity and access management untuk AWS CodePipeline - AWS CodePipeline

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

Identity and access management untuk AWS CodePipeline

AWS Identity and Access Management (IAM) adalah Layanan AWS yang membantu administrator mengontrol akses ke AWS sumber daya dengan aman. Administrator IAM mengontrol siapa yang dapat diautentikasi (masuk) dan diberi wewenang (memiliki izin) untuk menggunakan sumber daya. CodePipeline IAM adalah Layanan AWS yang dapat Anda gunakan tanpa biaya tambahan.

Audiens

Cara Anda menggunakan AWS Identity and Access Management (IAM) berbeda, tergantung pada pekerjaan yang Anda lakukan. CodePipeline

Pengguna layanan — Jika Anda menggunakan CodePipeline layanan untuk melakukan pekerjaan Anda, administrator Anda memberi Anda kredensyal dan izin yang Anda butuhkan. Saat Anda menggunakan lebih banyak CodePipeline fitur untuk melakukan pekerjaan Anda, Anda mungkin memerlukan izin tambahan. Memahami cara akses dikelola dapat membantu Anda meminta izin yang tepat dari administrator Anda. Jika Anda tidak dapat mengakses fitur CodePipeline, lihatPemecahan masalah identitas dan akses AWS CodePipeline.

Administrator layanan — Jika Anda bertanggung jawab atas CodePipeline sumber daya di perusahaan Anda, Anda mungkin memiliki akses penuh ke CodePipeline. Tugas Anda adalah menentukan CodePipeline fitur dan sumber daya mana yang harus diakses pengguna layanan Anda. Kemudian, Anda harus mengirimkan permintaan kepada administrator IAM untuk mengubah izin pengguna layanan Anda. Tinjau informasi di halaman ini untuk memahami konsep Basic IAM. Untuk mempelajari lebih lanjut tentang bagaimana perusahaan Anda dapat menggunakan IAM CodePipeline, lihatBagaimana AWS CodePipeline bekerja dengan IAM.

Administrator IAM - Jika Anda seorang administrator IAM, Anda mungkin ingin mempelajari detail tentang cara menulis kebijakan untuk mengelola akses. CodePipeline Untuk melihat contoh kebijakan CodePipeline berbasis identitas yang dapat Anda gunakan di IAM, lihat. Contoh kebijakan berbasis identitas AWS CodePipeline

Mengautentikasi dengan identitas

Otentikasi adalah cara Anda masuk AWS menggunakan kredensi identitas Anda. Anda harus diautentikasi (masuk ke AWS) sebagai Pengguna root akun AWS, sebagai pengguna IAM, atau dengan mengasumsikan peran IAM.

Anda dapat masuk AWS sebagai identitas federasi dengan menggunakan kredensyal yang disediakan melalui sumber identitas. AWS IAM Identity Center Pengguna (IAM Identity Center), autentikasi masuk tunggal perusahaan Anda, dan kredensyal Google atau Facebook Anda adalah contoh identitas federasi. Saat Anda masuk sebagai identitas terfederasi, administrator Anda sebelumnya menyiapkan federasi identitas menggunakan peran IAM. Ketika Anda mengakses AWS dengan menggunakan federasi, Anda secara tidak langsung mengambil peran.

Bergantung pada jenis pengguna Anda, Anda dapat masuk ke AWS Management Console atau portal AWS akses. Untuk informasi selengkapnya tentang masuk AWS, lihat Cara masuk ke Panduan AWS Sign-In Pengguna Anda Akun AWS.

Jika Anda mengakses AWS secara terprogram, AWS sediakan kit pengembangan perangkat lunak (SDK) dan antarmuka baris perintah (CLI) untuk menandatangani permintaan Anda secara kriptografis dengan menggunakan kredensil Anda. Jika Anda tidak menggunakan AWS alat, Anda harus menandatangani permintaan sendiri. Untuk informasi selengkapnya tentang penggunaan metode yang disarankan untuk menandatangani permintaan sendiri, lihat Menandatangani permintaan AWS API di Panduan Pengguna IAM.

Apa pun metode autentikasi yang digunakan, Anda mungkin diminta untuk menyediakan informasi keamanan tambahan. Misalnya, AWS merekomendasikan agar Anda menggunakan otentikasi multi-faktor (MFA) untuk meningkatkan keamanan akun Anda. Untuk mempelajari selengkapnya, lihat Autentikasi multi-faktor dalam Panduan Pengguna AWS IAM Identity Center dan Menggunakan autentikasi multi-faktor (MFA) dalam AWS dalam Panduan Pengguna IAM.

Pengguna root akun AWS

Saat Anda membuat Akun AWS, Anda mulai dengan satu identitas masuk yang memiliki akses lengkap ke semua Layanan AWS dan sumber daya di akun. Identitas ini disebut pengguna Akun AWS root dan diakses dengan masuk dengan alamat email dan kata sandi yang Anda gunakan untuk membuat akun. Kami sangat menyarankan agar Anda tidak menggunakan pengguna root untuk tugas sehari-hari. Lindungi kredensial pengguna root Anda dan gunakan kredensial tersebut untuk melakukan tugas yang hanya dapat dilakukan pengguna root. Untuk daftar lengkap tugas yang mengharuskan Anda masuk sebagai pengguna root, lihat Tugas yang memerlukan kredensial pengguna root dalam Panduan Pengguna IAM.

Pengguna dan grup IAM

Pengguna IAM adalah identitas dalam diri Anda Akun AWS yang memiliki izin khusus untuk satu orang atau aplikasi. Jika memungkinkan, kami merekomendasikan untuk mengandalkan kredensial sementara, bukan membuat pengguna IAM yang memiliki kredensial jangka panjang seperti kata sandi dan kunci akses. Namun, jika Anda memiliki kasus penggunaan tertentu yang memerlukan kredensial jangka panjang dengan pengguna IAM, kami merekomendasikan Anda merotasi kunci akses. Untuk informasi selengkapnya, lihat Merotasi kunci akses secara teratur untuk kasus penggunaan yang memerlukan kredensial jangka panjang dalam Panduan Pengguna IAM.

Grup IAM adalah identitas yang menentukan sekumpulan pengguna IAM. Anda tidak dapat masuk sebagai grup. Anda dapat menggunakan grup untuk menentukan izin bagi beberapa pengguna sekaligus. Grup mempermudah manajemen izin untuk sejumlah besar pengguna sekaligus. Misalnya, Anda dapat memiliki grup yang bernama IAMAdmins dan memberikan izin ke grup tersebut untuk mengelola sumber daya IAM.

Pengguna berbeda dari peran. Pengguna secara unik terkait dengan satu orang atau aplikasi, tetapi peran dimaksudkan untuk dapat digunakan oleh siapa pun yang membutuhkannya. Pengguna memiliki kredensial jangka panjang permanen, tetapi peran memberikan kredensial sementara. Untuk mempelajari selengkapnya, lihat Kapan harus membuat pengguna IAM (bukan peran) dalam Panduan Pengguna IAM.

Peran IAM

Peran IAM adalah identitas dalam diri Anda Akun AWS yang memiliki izin khusus. Peran ini mirip dengan pengguna IAM, tetapi tidak terkait dengan orang tertentu. Anda dapat mengambil peran IAM untuk sementara AWS Management Console dengan beralih peran. Anda dapat mengambil peran dengan memanggil operasi AWS CLI atau AWS API atau dengan menggunakan URL kustom. Untuk informasi selengkapnya tentang cara menggunakan peran, lihat Menggunakan peran IAM dalam Panduan Pengguna IAM.

Peran IAM dengan kredensial sementara berguna dalam situasi berikut:

  • Akses pengguna terfederasi – Untuk menetapkan izin ke identitas terfederasi, Anda membuat peran dan menentukan izin untuk peran tersebut. Ketika identitas terfederasi mengautentikasi, identitas tersebut terhubung dengan peran dan diberi izin yang ditentukan oleh peran. Untuk informasi tentang peran untuk federasi, lihat Membuat peran untuk Penyedia Identitas pihak ketiga dalam Panduan Pengguna IAM. Jika menggunakan Pusat Identitas IAM, Anda harus mengonfigurasi set izin. Untuk mengontrol apa yang dapat diakses identitas Anda setelah identitas tersebut diautentikasi, Pusat Identitas IAM akan mengorelasikan set izin ke peran dalam IAM. Untuk informasi tentang set izin, lihat Set izin dalam Panduan Pengguna AWS IAM Identity Center .

  • Izin pengguna IAM sementara – Pengguna atau peran IAM dapat mengambil peran IAM guna mendapatkan berbagai izin secara sementara untuk tugas tertentu.

  • Akses lintas akun – Anda dapat menggunakan peran IAM untuk mengizinkan seseorang (prinsipal tepercaya) di akun lain untuk mengakses sumber daya di akun Anda. Peran adalah cara utama untuk memberikan akses lintas akun. Namun, dengan beberapa Layanan AWS, Anda dapat melampirkan kebijakan secara langsung ke sumber daya (alih-alih menggunakan peran sebagai proxy). Untuk mempelajari perbedaan antara peran dan kebijakan berbasis sumber daya untuk akses lintas akun, lihat Akses sumber daya lintas akun di IAM di Panduan Pengguna IAM.

  • Akses lintas layanan — Beberapa Layanan AWS menggunakan fitur lain Layanan AWS. Sebagai contoh, ketika Anda memanggil suatu layanan, biasanya layanan tersebut menjalankan aplikasi di Amazon EC2 atau menyimpan objek di Amazon S3. Sebuah layanan mungkin melakukannya menggunakan izin prinsipal yang memanggil, menggunakan peran layanan, atau peran terkait layanan.

    • Sesi akses teruskan (FAS) — Saat Anda menggunakan pengguna atau peran IAM untuk melakukan tindakan AWS, Anda dianggap sebagai prinsipal. Ketika Anda menggunakan beberapa layanan, Anda mungkin melakukan sebuah tindakan yang kemudian menginisiasi tindakan lain di layanan yang berbeda. FAS menggunakan izin dari pemanggilan utama Layanan AWS, dikombinasikan dengan permintaan Layanan AWS untuk membuat permintaan ke layanan hilir. Permintaan FAS hanya dibuat ketika layanan menerima permintaan yang memerlukan interaksi dengan orang lain Layanan AWS atau sumber daya untuk menyelesaikannya. Dalam hal ini, Anda harus memiliki izin untuk melakukan kedua tindakan tersebut. Untuk detail kebijakan ketika mengajukan permintaan FAS, lihat Sesi akses maju.

    • Peran layanan – Peran layanan adalah peran IAM yang dijalankan oleh layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat Membuat sebuah peran untuk mendelegasikan izin ke Layanan AWS dalam Panduan pengguna IAM.

    • Peran terkait layanan — Peran terkait layanan adalah jenis peran layanan yang ditautkan ke peran layanan. Layanan AWS Layanan tersebut dapat menjalankan peran untuk melakukan tindakan atas nama Anda. Peran terkait layanan muncul di Anda Akun AWS dan dimiliki oleh layanan. Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan.

  • Aplikasi yang berjalan di Amazon EC2 — Anda dapat menggunakan peran IAM untuk mengelola kredensi sementara untuk aplikasi yang berjalan pada instans EC2 dan membuat atau permintaan API. AWS CLI AWS Cara ini lebih dianjurkan daripada menyimpan kunci akses dalam instans EC2. Untuk menetapkan AWS peran ke instans EC2 dan membuatnya tersedia untuk semua aplikasinya, Anda membuat profil instance yang dilampirkan ke instance. Profil instans berisi peran dan memungkinkan program yang berjalan di instans EC2 mendapatkan kredensial sementara. Untuk informasi selengkapnya, lihat Menggunakan peran IAM untuk memberikan izin ke aplikasi yang berjalan dalam instans Amazon EC2 dalam Panduan Pengguna IAM.

Untuk mempelajari apakah kita harus menggunakan peran IAM atau pengguna IAM, lihat Kapan harus membuat peran IAM (bukan pengguna) dalam Panduan Pengguna IAM.

Mengelola akses menggunakan kebijakan

Anda mengontrol akses AWS dengan membuat kebijakan dan melampirkannya ke AWS identitas atau sumber daya. Kebijakan adalah objek AWS yang, ketika dikaitkan dengan identitas atau sumber daya, menentukan izinnya. AWS mengevaluasi kebijakan ini ketika prinsipal (pengguna, pengguna root, atau sesi peran) membuat permintaan. Izin dalam kebijakan menentukan apakah permintaan diizinkan atau ditolak. Sebagian besar kebijakan disimpan AWS sebagai dokumen JSON. Untuk informasi selengkapnya tentang struktur dan isi dokumen kebijakan JSON, lihat Gambaran umum kebijakan JSON dalam Panduan Pengguna IAM.

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Artinya, prinsipal manakah yang dapat melakukan tindakan pada sumber daya apa, dan dengan kondisi apa.

Secara default, pengguna dan peran tidak memiliki izin. Untuk memberikan izin kepada pengguna untuk melakukan tindakan di sumber daya yang mereka perlukan, administrator IAM dapat membuat kebijakan IAM. Administrator kemudian dapat menambahkan kebijakan IAM ke peran, dan pengguna dapat mengambil peran.

Kebijakan IAM mendefinisikan izin untuk suatu tindakan terlepas dari metode yang Anda gunakan untuk melakukan operasinya. Misalnya, anggaplah Anda memiliki kebijakan yang mengizinkan tindakan iam:GetRole. Pengguna dengan kebijakan tersebut bisa mendapatkan informasi peran dari AWS Management Console, API AWS CLI, atau AWS API.

Kebijakan berbasis identitas

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang dapat Anda lampirkan ke sebuah identitas, seperti pengguna IAM, grup pengguna IAM, atau peran IAM. Kebijakan ini mengontrol jenis tindakan yang dapat dilakukan oleh pengguna dan peran, di sumber daya mana, dan berdasarkan kondisi seperti apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat Membuat kebijakan IAM dalam Panduan Pengguna IAM.

Kebijakan berbasis identitas dapat dikategorikan lebih lanjut sebagai kebijakan inline atau kebijakan yang dikelola. Kebijakan inline disematkan langsung ke satu pengguna, grup, atau peran. Kebijakan terkelola adalah kebijakan mandiri yang dapat Anda lampirkan ke beberapa pengguna, grup, dan peran dalam. Akun AWS Kebijakan AWS terkelola mencakup kebijakan terkelola dan kebijakan yang dikelola pelanggan. Untuk mempelajari cara memilih antara kebijakan yang dikelola atau kebijakan inline, lihat Memilih antara kebijakan yang dikelola dan kebijakan inline dalam Panduan Pengguna IAM.

Kebijakan berbasis sumber daya

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumber daya. Contoh kebijakan berbasis sumber daya adalah kebijakan kepercayaan peran IAM dan kebijakan bucket Amazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanan dapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Untuk sumber daya tempat kebijakan dilampirkan, kebijakan menentukan tindakan apa yang dapat dilakukan oleh prinsipal tertentu pada sumber daya tersebut dan dalam kondisi apa. Anda harus menentukan prinsipal dalam kebijakan berbasis sumber daya. Prinsipal dapat mencakup akun, pengguna, peran, pengguna federasi, atau. Layanan AWS

Kebijakan berbasis sumber daya merupakan kebijakan inline yang terletak di layanan tersebut. Anda tidak dapat menggunakan kebijakan AWS terkelola dari IAM dalam kebijakan berbasis sumber daya.

Jenis-jenis kebijakan lain

AWS mendukung jenis kebijakan tambahan yang kurang umum. Jenis-jenis kebijakan ini dapat mengatur izin maksimum yang diberikan kepada Anda oleh jenis kebijakan yang lebih umum.

  • Batasan izin – Batasan izin adalah fitur lanjutan tempat Anda mengatur izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas ke entitas IAM (pengguna IAM atau peran IAM). Anda dapat menetapkan batasan izin untuk suatu entitas. Izin yang dihasilkan adalah perpotongan antara kebijakan berbasis identitas milik entitas dan batasan izinnya. Kebijakan berbasis sumber daya yang menentukan pengguna atau peran dalam bidang Principal tidak dibatasi oleh batasan izin. Penolakan eksplisit dalam salah satu kebijakan ini akan menggantikan pemberian izin. Untuk informasi selengkapnya tentang batasan izin, lihat Batasan izin untuk entitas IAM dalam Panduan Pengguna IAM.

  • Kebijakan kontrol layanan (SCP) — SCP adalah kebijakan JSON yang menentukan izin maksimum untuk organisasi atau unit organisasi (OU) di. AWS Organizations AWS Organizations adalah layanan untuk mengelompokkan dan mengelola secara terpusat beberapa Akun AWS yang dimiliki bisnis Anda. Jika Anda mengaktifkan semua fitur di organisasi, Anda dapat menerapkan kebijakan kontrol layanan (SCP) ke salah satu atau semua akun Anda. SCP membatasi izin untuk entitas di akun anggota, termasuk masing-masing. Pengguna root akun AWS Untuk informasi selengkapnya tentang Organisasi dan SCP, lihat Cara kerja SCP dalam Panduan Pengguna AWS Organizations .

  • Kebijakan sesi – Kebijakan sesi adalah kebijakan lanjutan yang Anda berikan sebagai parameter ketika Anda membuat sesi sementara secara programatis untuk peran atau pengguna terfederasi. Izin sesi yang dihasilkan adalah perpotongan antara kebijakan berbasis identitas pengguna atau peran dan kebijakan sesi. Izin juga bisa datang dari kebijakan berbasis sumber daya. Penolakan eksplisit dalam salah satu kebijakan ini akan menggantikan pemberian izin. Untuk informasi selengkapnya, lihat Kebijakan sesi dalam Panduan Pengguna IAM.

Kelola peran CodePipeline layanan

Peran CodePipeline layanan dikonfigurasi dengan satu atau beberapa kebijakan yang mengontrol akses ke AWS sumber daya yang digunakan oleh pipeline. Anda mungkin ingin melampirkan kebijakan lainnya ke peran ini, mengedit kebijakan yang dilampirkan pada peran, atau mengonfigurasi kebijakan untuk peran layanan lainnya AWS. Anda mungkin juga ingin melampirkan kebijakan ke peran saat mengonfigurasi akses lintas akun ke pipeline Anda.

penting

Memodifikasi pernyataan kebijakan atau melampirkan kebijakan lain ke peran tersebut dapat mencegah jaringan pipa Anda berfungsi. Pastikan Anda memahami implikasinya sebelum memodifikasi peran layanan dengan CodePipeline cara apa pun. Pastikan Anda menguji pipeline Anda setelah Anda membuat perubahan apa pun pada peran layanan.

catatan

Di konsol, peran layanan yang dibuat sebelum September 2018 dibuat dengan namaoneClick_AWS-CodePipeline-Service_ID-Number.

Peran layanan yang dibuat setelah September 2018 menggunakan format nama peran layananAWSCodePipelineServiceRole-Region-Pipeline_Name. Misalnya, untuk pipeline bernama MyFirstPipeline ineu-west-2, konsol menamai peran dan kebijakan tersebutAWSCodePipelineServiceRole-eu-west-2-MyFirstPipeline.

Hapus izin dari peran CodePipeline layanan

Anda dapat mengedit pernyataan peran layanan untuk menghapus akses ke sumber daya yang tidak Anda gunakan. Misalnya, jika tidak ada pipeline yang menyertakan Elastic Beanstalk, Anda dapat mengedit pernyataan kebijakan untuk menghapus bagian yang memberikan akses ke sumber daya Elastic Beanstalk.

Demikian pula, jika tidak ada pipeline yang disertakan CodeDeploy, Anda dapat mengedit pernyataan kebijakan untuk menghapus bagian yang memberikan akses ke CodeDeploy sumber daya:

{ "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetApplicationRevision", "codedeploy:GetDeployment", "codedeploy:GetDeploymentConfig", "codedeploy:RegisterApplicationRevision" ], "Resource": "*", "Effect": "Allow" },

Menambahkan izin ke peran CodePipeline layanan

Anda harus memperbarui pernyataan kebijakan peran layanan dengan izin untuk pernyataan kebijakan peran layanan default yang Layanan AWS belum disertakan dalam pernyataan kebijakan peran layanan default sebelum dapat menggunakannya di pipeline Anda.

Hal ini sangat penting jika peran layanan yang Anda gunakan untuk pipeline Anda dibuat sebelum dukungan ditambahkan ke CodePipeline untuk. Layanan AWS

Tabel berikut menunjukkan kapan dukungan ditambahkan untuk lainnya Layanan AWS.

Layanan AWS CodePipeline tanggal dukungan
AWS CloudFormation StackSets tindakan 30 Desember 2020
CodeCommit format artefak keluaran klon penuh 11 November 2020
CodeBuild batch membangun 30 Juli 2020
AWS AppConfig 22 Juni 2020
AWS Step Functions 27 Mei 2020
AWS CodeStar Koneksi 18 Desember 2019
Tindakan CodeDeployToECS 27 November 2018
Amazon ECR 27 November 2018
Service Catalog 16 Oktober 2018
AWS Device Farm 19 Juli 2018
Amazon ECS 12 Desember 2017/Pembaruan untuk memilih untuk menandai otorisasi pada 21 Juli 2017
CodeCommit 18 April 2016
AWS OpsWorks Juni 2, 2016
AWS CloudFormation Selasa, 3 November 2016
AWS CodeBuild 1 Desember 2016
Elastic Beanstalk Peluncuran layanan awal

Ikuti langkah-langkah berikut untuk menambahkan izin untuk layanan yang didukung:

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

  2. Di konsol IAM, di panel navigasi, pilih Peran, lalu pilih AWS-CodePipeline-Service peran Anda dari daftar peran.

  3. Pada tab Izin, di Kebijakan sebaris, di baris kebijakan peran layanan Anda, pilih Edit Kebijakan.

  4. Tambahkan izin yang diperlukan di kotak Dokumen kebijakan.

    catatan

    Saat Anda membuat kebijakan IAM, ikuti saran keamanan standar untuk memberikan hak istimewa paling sedikit—yaitu, hanya memberikan izin yang diperlukan untuk melakukan tugas. Beberapa panggilan API mendukung izin berbasis sumber daya dan memungkinkan akses dibatasi. Misalnya, dalam hal ini, untuk membatasi izin saat memanggil DescribeTasks danListTasks, Anda dapat mengganti karakter wildcard (*) dengan ARN sumber daya atau dengan ARN sumber daya yang berisi karakter wildcard (*). Untuk informasi selengkapnya tentang membuat kebijakan yang memberikan akses hak istimewa paling sedikit, lihat. https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege

    Misalnya, untuk CodeCommit dukungan, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

    { "Effect": "Allow", "Action": [ "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:UploadArchive", "codecommit:GetUploadArchiveStatus", "codecommit:CancelUploadArchive" ], "Resource": "resource_ARN" },

    Untuk AWS OpsWorks dukungan, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

    { "Effect": "Allow", "Action": [ "opsworks:CreateDeployment", "opsworks:DescribeApps", "opsworks:DescribeCommands", "opsworks:DescribeDeployments", "opsworks:DescribeInstances", "opsworks:DescribeStacks", "opsworks:UpdateApp", "opsworks:UpdateStack" ], "Resource": "resource_ARN" },

    Untuk AWS CloudFormation dukungan, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

    { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DescribeChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:SetStackPolicy", "cloudformation:ValidateTemplate", "iam:PassRole" ], "Resource": "resource_ARN" },

    Perhatikan bahwa cloudformation:DescribeStackEvents izin adalah opsional. Hal ini memungkinkan AWS CloudFormation tindakan untuk menampilkan pesan kesalahan yang lebih rinci. Izin ini dapat dicabut dari peran IAM jika Anda tidak ingin detail sumber daya muncul dalam pesan kesalahan pipeline. Untuk informasi selengkapnya, lihat AWS CloudFormation.

    Untuk CodeBuild dukungan, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

    { "Effect": "Allow", "Action": [ "codebuild:BatchGetBuilds", "codebuild:StartBuild" ], "Resource": "resource_ARN" },
    catatan

    Support untuk build batch ditambahkan di kemudian hari. Lihat langkah 11 untuk izin yang akan ditambahkan ke peran layanan untuk build batch.

    Untuk AWS Device Farm dukungan, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

    { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "resource_ARN" },

    Untuk dukungan Service Catalog, tambahkan berikut ini ke pernyataan kebijakan Anda:

    { "Effect": "Allow", "Action": [ "servicecatalog:ListProvisioningArtifacts", "servicecatalog:CreateProvisioningArtifact", "servicecatalog:DescribeProvisioningArtifact", "servicecatalog:DeleteProvisioningArtifact", "servicecatalog:UpdateProduct" ], "Resource": "resource_ARN" }, { "Effect": "Allow", "Action": [ "cloudformation:ValidateTemplate" ], "Resource": "resource_ARN" }
  5. Untuk dukungan Amazon ECR, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

    { "Effect": "Allow", "Action": [ "ecr:DescribeImages" ], "Resource": "resource_ARN" },
  6. Untuk Amazon ECS, berikut ini adalah izin minimum yang diperlukan untuk membuat pipeline dengan tindakan penerapan Amazon ECS.

    { "Effect": "Allow", "Action": [ "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:TagResource", "ecs:UpdateService" ], "Resource": "resource_ARN" },

    Anda dapat memilih untuk menggunakan otorisasi penandaan di Amazon ECS. Dengan ikut serta, Anda harus memberikan izin berikut:. ecs:TagResource Untuk informasi selengkapnya tentang cara ikut serta dan menentukan apakah izin diperlukan dan otorisasi tag diberlakukan, lihat Garis waktu otorisasi penandaan di Panduan Pengembang Layanan Penampung Elastis Amazon.

    Anda juga harus menambahkan iam:PassRole izin untuk menggunakan peran IAM untuk tugas. Untuk informasi selengkapnya, lihat peran IAM eksekusi tugas Amazon ECS dan Peran IAM untuk Tugas. Gunakan teks kebijakan berikut.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::aws_account_ID:role/ecsTaskExecutionRole_or_TaskRole_name" ] } ] }
  7. Untuk CodeDeployToECS tindakan (penerapan biru/hijau), berikut ini adalah izin minimum yang diperlukan untuk membuat pipeline dengan tindakan penerapan biru/hijau CodeDeploy ke Amazon ECS.

    { "Effect": "Allow", "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetDeployment", "codedeploy:GetApplication", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:GetDeploymentConfig", "ecs:RegisterTaskDefinition", "ecs:TagResource" ], "Resource": "resource_ARN" },

    Anda dapat memilih untuk menggunakan otorisasi penandaan di Amazon ECS. Dengan ikut serta, Anda harus memberikan izin berikut:. ecs:TagResource Untuk informasi selengkapnya tentang cara ikut serta dan menentukan apakah izin diperlukan dan otorisasi tag diberlakukan, lihat Garis waktu otorisasi penandaan di Panduan Pengembang Layanan Penampung Elastis Amazon.

    Anda juga harus menambahkan iam:PassRole izin untuk menggunakan peran IAM untuk tugas. Untuk informasi selengkapnya, lihat peran IAM eksekusi tugas Amazon ECS dan Peran IAM untuk Tugas. Gunakan teks kebijakan berikut.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::aws_account_ID:role/ecsTaskExecutionRole_or_TaskRole_name" ] } ] }

    Anda juga dapat menambahkan ecs-tasks.amazonaws.com ke daftar layanan di bawah iam:PassedToService kondisi, seperti yang ditunjukkan dalam contoh ini.

    { "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "resource_ARN", "Condition": { "StringEqualsIfExists": { "iam:PassedToService": [ "cloudformation.amazonaws.com", "elasticbeanstalk.amazonaws.com", "ec2.amazonaws.com", "ecs-tasks.amazonaws.com" ] } } },
  8. Untuk AWS CodeStar koneksi, izin berikut diperlukan untuk membuat pipeline dengan sumber yang menggunakan koneksi, seperti Bitbucket Cloud.

    { "Effect": "Allow", "Action": [ "codestar-connections:UseConnection" ], "Resource": "resource_ARN" },

    Untuk informasi selengkapnya tentang izin IAM untuk koneksi, lihat Referensi izin koneksi.

  9. Untuk StepFunctions tindakan, berikut ini adalah izin minimum yang diperlukan untuk membuat pipeline dengan tindakan pemanggilan Step Functions.

    { "Effect": "Allow", "Action": [ "states:DescribeStateMachine", "states:DescribeExecution", "states:StartExecution" ], "Resource": "resource_ARN" },
  10. Untuk AppConfig tindakan, berikut ini adalah izin minimum yang diperlukan untuk membuat pipeline dengan tindakan AWS AppConfig pemanggilan.

    { "Effect": "Allow", "Action": [ "appconfig:StartDeployment", "appconfig:GetDeployment", "appconfig:StopDeployment" ], "Resource": "resource_ARN" },
  11. Untuk CodeBuild dukungan untuk build batch, tambahkan berikut ini ke pernyataan kebijakan Anda:

    { "Effect": "Allow", "Action": [ "codebuild:BatchGetBuildBatches", "codebuild:StartBuildBatch" ], "Resource": "resource_ARN" },
  12. Untuk AWS CloudFormation StackSets tindakan, izin minimum berikut diperlukan.

    • Untuk CloudFormationStackSet tindakan tersebut, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

      { "Effect": "Allow", "Action": [ "cloudformation:CreateStackSet", "cloudformation:UpdateStackSet", "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStackSet", "cloudformation:ListStackInstances" ], "Resource": "resource_ARN" },
    • Untuk CloudFormationStackInstances tindakan tersebut, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

      { "Effect": "Allow", "Action": [ "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation" ], "Resource": "resource_ARN" },
  13. Untuk CodeCommit dukungan opsi klon lengkap, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

    { "Effect": "Allow", "Action": [ "codecommit:GetRepository" ], "Resource": "resource_ARN" },
    catatan

    Untuk memastikan CodeBuild tindakan Anda dapat menggunakan opsi klon lengkap dengan CodeCommit sumber, Anda juga harus menambahkan codecommit:GitPull izin ke pernyataan kebijakan untuk peran CodeBuild layanan proyek Anda.

  14. Untuk Elastic Beanstalk, berikut ini adalah izin minimum yang diperlukan untuk membuat pipeline dengan tindakan penerapan. ElasticBeanstalk

    { "Effect": "Allow", "Action": [ "elasticbeanstalk:*", "ec2:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "cloudformation:*", "rds:*", "sqs:*", "ecs:*" ], "Resource": "resource_ARN" },
    catatan

    Anda harus mengganti wildcard dalam kebijakan sumber daya dengan sumber daya untuk akun yang ingin Anda batasi aksesnya. Untuk informasi selengkapnya tentang membuat kebijakan yang memberikan akses hak istimewa paling sedikit, lihat. https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege

  15. Untuk pipeline yang ingin dikonfigurasi untuk CloudWatch Log, berikut ini adalah izin minimum yang perlu ditambahkan ke peran CodePipeline layanan.

    { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:PutRetentionPolicy" ], "Resource": "resource_ARN" },
    catatan

    Anda harus mengganti wildcard dalam kebijakan sumber daya dengan sumber daya untuk akun yang ingin Anda batasi aksesnya. Untuk informasi selengkapnya tentang membuat kebijakan yang memberikan akses hak istimewa paling sedikit, lihat. https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege

  16. Pilih Kebijakan tinjau untuk memastikan kebijakan tidak mengandung kesalahan. Jika kebijakan bebas dari kesalahan, pilih Terapkan kebijakan.