CodeBuild pembuatan peran penyediaan - AWS Proton

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 AWS CloudFormation dan Terraform memerlukan izin untuk berbagai jenis sumber daya. AWS Misalnya, jika templat IAAC mendeklarasikan bucket Amazon S3, templat 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 AWS sumber daya, sulit untuk membuat kebijakan hak istimewa terkecil untuk templat IAAC, terutama ketika sumber daya yang dikelola oleh templat tersebut dapat berubah nanti. Misalnya, dalam pengeditan terbaru Anda ke templat yang dikelola oleh AWS Proton, Anda menambahkan sumber daya RDS database.

Mengkonfigurasi izin yang tepat membantu membuat penerapan IAC Anda lancar. AWS Proton CodeBuild Penyediaan mengeksekusi CLI perintah 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 menyebarkan yang templatnya menggunakan CodeBuild Provisioning, AWS akan memulai build dalam CodeBuild proyek yang dikelola oleh. AWS Sebuah 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 menyediakan infrastruktur. Ini dimaksudkan untuk diasumsikan hanya oleh CodeBuild dan bahkan tidak AWS Proton dapat mengasumsikan itu.

Menciptakan peran

CodeBuild Peran Penyediaan dapat dibuat di IAM konsol 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:

  1. Untuk entitas tepercaya, pilih AWS layanan lalu pilih CodeBuild.

  2. Pada langkah Tambahkan izin, pilih AWSProtonCodeBuildProvisioningBasicAccess dan kebijakan lain yang ingin Anda lampirkan.

Akses Administrator

Jika Anda melampirkan AdministratorAccess kebijakan ke CodeBuild Peran Penyediaan, itu akan menjamin bahwa template IAAC 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 tersebut bukan administrator. AWS Proton tidak merekomendasikan penggunaan AdministatorAccess dengan Peran CodeBuild Penyediaan. Jika Anda memutuskan untuk menggunakan AdministratorAccess CodeBuild Peran Penyediaan, lakukan di lingkungan kotak pasir.

Anda dapat membuat peran dengan AdministratorAccess di IAM konsol 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 Peran Cakupan Minimal

Jika Anda ingin membuat peran dengan izin minimum, ada beberapa pendekatan:

  • Terapkan dengan izin admin, lalu cakup perannya. Kami merekomendasikan menggunakan IAMAccess Analyzer.

  • Gunakan kebijakan terkelola untuk memberikan akses ke layanan yang Anda rencanakan untuk digunakan.

AWS CDK

Jika Anda menggunakan AWS CDK with AWS Proton, dan Anda telah menjalankan cdk bootstrap di setiap akun/wilayah lingkungan, maka sudah ada peran untuk. cdk deploy Dalam hal ini, lampirkan kebijakan berikut ke CodeBuild Peran Penyediaan:

{ "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" }
VPC kustom

Jika Anda memutuskan untuk menjalankan CodeBuild dalam kustom VPC, Anda akan 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 AmazonEC2FullAccess terkelola, meskipun itu termasuk izin yang mungkin tidak Anda perlukan. Untuk melampirkan kebijakan terkelola menggunakanCLI:

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