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:
-
Untuk entitas tepercaya, pilihAWSlayanan dan kemudian pilihCodeBuild.
-
Pada langkah Tambahkan izin, pilih
AWSProtonCodeBuildProvisioningBasicAccess
dan kebijakan lain yang ingin Anda lampirkan.
Akses Administrator
Jika Anda melampirkanAdministratorAccess
kebijakan 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 menggunakanAdministatorAccess
denganCodeBuildProvisioning Peran. Jika Anda memutuskan untuk menggunakanAdministratorAccess
denganCodeBuildProvisioning Role, lakukan di lingkungan sandbox.
Anda dapat membuat peran denganAdministratorAccess
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 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 bootstrap
pada 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 menggunakanAmazonEC2FullAccess
kebijakan 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