AWS CodeBuild kunci kondisi - AWS CodeBuild

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

AWS CodeBuild kunci kondisi

AWS CodeBuild menyediakan satu set kunci kondisi yang dapat Anda gunakan dalam kebijakan IAM untuk menegakkan kebijakan organisasi Anda pada CodeBuild sumber daya seperti proyek dan armada. Kunci kondisi mencakup sebagian besar konteks permintaan CodeBuild API, termasuk pengaturan jaringan, konfigurasi kredensi, dan batasan komputasi.

Menerapkan pengaturan konektivitas VPC pada proyek dan armada Anda

Kebijakan ini memungkinkan pemanggil untuk menggunakan grup subnet VPCs, dan keamanan yang dipilih saat membuat CodeBuild proyek dan armada. Untuk informasi lebih lanjut tentang kunci konteks multivalued, lihat Kunci konteks bernilai tunggal vs. multivalued.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "codebuild:CreateProject", "codebuild:CreateFleet" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "codebuild:vpcConfig.vpcId": [ "vpc-01234567890abcdef", "vpc-abcdef01234567890" ], "codebuild:vpcConfig.subnets": [ "subnet-1234abcd", "subnet-5678abcd" ], "codebuild:vpcConfig.securityGroupIds": [ "sg-12345678abcdefghij", "sg-01234567abcdefghij" ] } } }] }

Mencegah modifikasi yang tidak sah pada proyek buildspec

Kebijakan ini tidak mengizinkan pemanggil untuk mengganti buildspec di bidang. buildspecOverride

catatan

Kunci codebuild:source.buildspec kondisi hanya mendukung operator Null untuk memeriksa keberadaan bidang API. Itu tidak mengevaluasi konten buildspec.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "codebuild:StartBuild", "Resource": "*" }, { "Effect": "Deny", "Action": "codebuild:StartBuild", "Resource": "*", "Condition": { "Null": { "codebuild:source.buildspec": "false" } } }] }

Batasi jenis komputasi untuk build Anda

Kebijakan ini memungkinkan pembuatan armada yang hanya dapat membangun c5.large atau m5.large menghitung jenis instans.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "codebuild:CreateFleet", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "codebuild:computeConfiguration.instanceType": ["c5.large", "m5.large"] } } }] }

Kontrol pengaturan variabel lingkungan

Kebijakan ini memungkinkan pemanggil untuk mengganti variabel STAGE lingkungan menjadi salah satu atauBETA. GAMMA Ini juga secara eksplisit menyangkal penggantian menjadiPRODUCTION, dan STAGE menyangkal mengesampingkan variabel lingkungan. MY_APP_VERSION Untuk beberapa kunci konteks nilai, silakan lihat Kunci konteks bernilai tunggal vs. multivalued.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "codebuild:environment.environmentVariables/STAGE.value": [ "BETA", "GAMMA" ] } } }, { "Effect": "Deny", "Action": [ "codebuild:StartBuild" ], "Resource": "*", "Condition": { "StringEquals": { "codebuild:environment.environmentVariables/STAGE.value": "PRODUCTION" }, "ForAnyValue:StringEquals": { "codebuild:environment.environmentVariables.name": [ "MY_APP_VERSION" ] } } } ] }

Gunakan variabel dalam nama kunci kondisi

Anda dapat menggunakan variabel dalam nama kunci kondisi seperti secondarySources/${sourceIdentifier}.location dansecondaryArtifacts/${artifactIdentifier}.location, di mana Anda dapat menentukan sumber sekunder atau pengenal artefak sekunder dalam kebijakan IAM. Kebijakan di bawah ini memungkinkan pemanggil untuk membuat proyek dengan lokasi sumber tertentu untuk sumber mySecondSource sekunder.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateProject", "Resource": "*", "Condition": { "StringEquals": { "codebuild:secondarySources/mySecondSource.location": "my-source-location" } } } ] }

Periksa keberadaan atribut dalam permintaan API

CodeBuild mendukung kunci kondisi untuk memeriksa keberadaan beberapa bidang dalam permintaan API. Kebijakan ini memberlakukan persyaratan VPC saat membuat atau memperbarui proyek.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "codebuild:CreateProject", "codebuild:UpdateProject" ], "Resource": "*", "Condition": { "Null": { "codebuild:vpcConfig": "false" } } }] }