View a markdown version of this page

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 kumpulan 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 kredensia, dan batasan komputasi.

Menerapkan pengaturan konektivitas VPC pada proyek dan armada Anda

Kebijakan ini memungkinkan pemanggil menggunakan VPC, subnet, dan grup keamanan yang dipilih saat membuat CodeBuild proyek dan armada. Untuk informasi selengkapnya tentang kunci konteks multinilai, lihat Single-valued vs. kunci konteks multinilai.

JSON
{ "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 tidak sah pada spesifikasi build proyek

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

catatan

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

JSON
{ "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 dapat dibuat hanya dengan c5.large atau m5.large menghitung jenis instans.

JSON
{ "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 mengganti variabel STAGE lingkungan menjadi salah satu atauBETA. GAMMA Itu juga secara eksplisit menyangkal menges STAGE ampingkan menjadiPRODUCTION, dan menyangkal mengesampingkan variabel MY_APP_VERSION lingkungan. Untuk beberapa kunci konteks nilai, silakan lihat Single-valued vs. kunci konteks multinilai.

JSON
{ "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 pengidentifikasi artefak sekunder dalam kebijakan IAM. Kebijakan di bawah ini memungkinkan pemanggil membuat proyek dengan lokasi sumber tertentu untuk sumber mySecondSource sekunder.

JSON
{ "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 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.vpcId": "false" } } }] }