CodeBuildpenyediaan pembuatan peran - AWS Proton

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

CodeBuildpenyediaan pembuatan peran

Infrastruktur sebagai Kode (iAAC) alat sepertiAWS CloudFormationdan Terraform memerlukan izin untuk berbagai jenisAWSsumber daya. Misalnya, jika template iAAC mendeklarasikan bucket Amazon S3, ia memerlukan izin untuk membuat, membaca, memperbarui, dan menghapus bucket Amazon S3. Ini dianggap sebagai praktik terbaik keamanan untuk membatasi peran pada izin minimal yang diperlukan. Mengingat luasnyaAWSsumber daya, sangat sulit untuk membuat kebijakan hak istimewa untuk templat iAAC, terutama ketika sumber daya yang dikelola oleh templat tersebut dapat berubah nanti. Misalnya, dalam pengeditan terbaru Anda ke templat yang dikelola olehAWS Proton, Anda menambahkan sumber daya database RDS.

Mengkonfigurasi izin yang tepat membantu memperlancar penerapan iAC Anda.AWS Proton CodeBuildProvisioning mengeksekusi perintah CLI yang disediakan pelanggan sewenang-wenang dalam aCodeBuildproyek yang terletak di rekening pelanggan. Biasanya, perintah ini membuat dan menghapus infrastruktur menggunakan alat Infrastructure as Code (iAAC) sepertiAWS CDK. KetikaAWSpenyebaran sumber daya yang menggunakan templatenyaCodeBuildPenyediaan,AWSakan memulai membangun diCodeBuildproyek dikelola olehAWS. Peran diteruskan keCodeBuild, yangCodeBuildmengasumsikan untuk mengeksekusi perintah. Peran ini, yang disebutCodeBuildProvisioning Role, disediakan oleh pelanggan dan berisi izin yang diperlukan untuk penyediaan infrastruktur. Ini dimaksudkan untuk diasumsikan hanya olehCodeBuilddan bahkanAWS ProtonTidak bisa berasumsi itu.

Menciptakan peran

YangCodeBuildPeran penyediaan dapat dibuat di konsol IAM atau diAWS CLI. Untuk membuatnya diAWS 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 menempelkanAWSProtonCodeBuildProvisioningBasicAccess, yang berisi izin minimal yang dibutuhkan olehCodeBuildlayanan untuk menjalankan membangun.

Jika Anda lebih suka menggunakan konsol, pastikan hal berikut saat Anda membuat peran:

  1. Untuk entitas tepercaya, pilihAWSlayanan dan kemudian pilihCodeBuild.

  2. Pada langkah Tambahkan izin, pilihAWSProtonCodeBuildProvisioningBasicAccessdan kebijakan lain yang ingin Anda lampirkan.

Akses Administrator

Jika Anda melampirkanAdministratorAccesskebijakan untukCodeBuildProvisioning Role, itu akan menjamin bahwa setiap 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 Protontidak merekomendasikan menggunakanAdministatorAccessdenganCodeBuildProvisioning Peran. Jika Anda memutuskan untuk menggunakanAdministratorAccessdenganCodeBuildProvisioning Role, lakukan di lingkungan sandbox.

Anda dapat membuat peran denganAdministratorAccessdi 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 Peran Minimal-Scoped

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

  • Terapkan dengan izin admin, lalu cakupan peran. Sebaiknya gunakanPenganalisis Akses IAM.

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

AWS CDK

Jika Anda menggunakanAWS CDKbersamaAWS Proton, dan Anda telah menjalankancdk bootstrappada setiap akun lingkungan/Region, maka sudah ada peran untukcdk deploy. Dalam hal ini, lampirkan kebijakan berikut keCodeBuildPeran 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" }

Kustom VPC

Jika Anda memutuskan untuk menjalankanCodeBuilddalam aVPC kustom, Anda akan memerlukan izin berikut diCodeBuildperan:

{ "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 bisa menggunakanAmazonEC2FullAccesskebijakan terkelola, meskipun itu mencakup 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