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.
Topik
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" } } }] }