Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, dukungan AWS akan berakhir untuk AWS Proton. Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses AWS Proton konsol atau AWS Proton sumber daya. Infrastruktur yang Anda gunakan akan tetap utuh. Untuk informasi selengkapnya, lihat Panduan AWS Proton Penghentian Layanan dan Migrasi.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
CodeBuild pembuatan peran penyediaan
Alat Infrastruktur sebagai Kode (IaaC) seperti CloudFormation dan Terraform memerlukan izin untuk berbagai jenis sumber daya. AWS Misalnya, jika template IaAC mendeklarasikan bucket Amazon S3, template tersebut memerlukan izin untuk membuat, membaca, memperbarui, dan menghapus bucket Amazon S3. Ini dianggap sebagai praktik terbaik keamanan untuk membatasi peran ke izin minimal yang diperlukan. Mengingat luasnya sumber AWS daya, sulit untuk membuat kebijakan hak istimewa terendah untuk templat IaAC, terutama ketika sumber daya yang dikelola oleh templat tersebut dapat berubah nanti. Misalnya, dalam pengeditan terbaru ke template yang dikelola oleh AWS Proton, Anda menambahkan sumber daya database RDS.
Mengonfigurasi izin yang tepat membantu membuat penerapan iAC Anda lancar. AWS Proton CodeBuild Penyediaan mengeksekusi perintah CLI yang disediakan pelanggan sewenang-wenang dalam CodeBuild proyek yang terletak di akun pelanggan. Biasanya, perintah ini membuat dan menghapus infrastruktur menggunakan alat Infrastructure as Code (IaaC) seperti AWS CDK. Ketika AWS sumber daya menerapkan yang templatnya menggunakan Penye CodeBuild diaan, AWS akan memulai build dalam CodeBuild proyek yang dikelola oleh. AWS Peran diteruskan ke CodeBuild, yang CodeBuild mengasumsikan untuk menjalankan perintah. Peran ini, yang disebut CodeBuild Peran Penyediaan, disediakan oleh pelanggan dan berisi izin yang diperlukan untuk penyediaan infrastruktur. Itu dimaksudkan untuk diasumsikan hanya oleh CodeBuild dan bahkan tidak AWS Proton dapat mengasumsikannya.
Menciptakan peran
Per CodeBuild an Penyediaan dapat dibuat di konsol IAM atau di. AWS CLI Untuk membuatnya di AWS CLI:
aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version": "2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AWSProtonCodeBuildProvisioningBasicAccess
Ini juga melampirkanAWSProtonCodeBuildProvisioningBasicAccess, yang berisi izin minimal yang diperlukan oleh CodeBuild layanan untuk menjalankan build.
Jika Anda lebih suka menggunakan konsol, pastikan hal berikut saat Anda membuat peran:
-
Untuk entitas tepercaya, pilih AWS layanan lalu pilih CodeBuild.
-
Pada langkah Tambah izin, pilih
AWSProtonCodeBuildProvisioningBasicAccessdan kebijakan lain yang ingin Anda lampirkan.
Akses Administrator
Jika Anda melampirkan AdministratorAccess kebijakan ke Peran CodeBuild Penyediaan, itu akan menjamin bahwa template IaAC apa pun tidak akan gagal karena kurangnya izin. Ini juga berarti bahwa siapa pun yang dapat membuat Template Lingkungan atau Template Layanan dapat melakukan tindakan tingkat administrator, bahkan jika pengguna itu bukan administrator. AWS Proton tidak merekomendasikan penggunaan AdministatorAccess dengan Peran Penye CodeBuild diaan. Jika Anda memutuskan untuk menggunakan AdministratorAccess dengan Per CodeBuild an Penyediaan, lakukan di lingkungan sandbox.
Anda dapat membuat peran dengan AdministratorAccess di konsol IAM atau dengan menjalankan perintah ini:
aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version": "2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
Membuat Minimally-Scoped Peran
Jika Anda ingin membuat peran dengan izin minimum, ada beberapa pendekatan:
-
Terapkan dengan izin admin, lalu uraikan perannya. Sebaiknya gunakan IAM Access Analyzer.
-
Gunakan kebijakan terkelola untuk memberikan akses ke layanan yang Anda rencanakan untuk digunakan.
AWS CDK
Jika Anda menggunakan AWS CDK dengan AWS Proton, dan Anda telah menjalankan cdk bootstrap di setiap lingkungan account/Region, maka sudah ada peran untukcdk deploy. Dalam hal ini, lampirkan kebijakan berikut ke Peran Penye CodeBuild diaan:
{ "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::account-id:role/cdk-*-deploy-role-*", "arn:aws:iam::account-id:role/cdk-*-file-publishing-role-*" ], "Effect": "Allow" }
Kustom VPC
Jika Anda memutuskan untuk menjalankan CodeBuild VPC ku stom, Anda memerlukan izin berikut dalam CodeBuild peran Anda:
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:subnet/*", "arn:aws:ec2:region:account-id:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": [ "arn:aws:ec2:region:account-id:*/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:AuthorizedService": "codebuild.amazonaws.com" } } }
Anda juga dapat menggunakan kebijakan ter AmazonEC2FullAccess kelola, meskipun itu termasuk izin yang mungkin tidak Anda perlukan. Untuk melampirkan kebijakan terkelola menggunakan CLI:
aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version": "2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AdministratorAccess