

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

# AWS CodeBuild kunci kondisi
<a name="action-context-keys"></a>

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.

**Topics**
+ [Menerapkan pengaturan konektivitas VPC pada proyek dan armada Anda](#action-context-keys-example-overrideVPC)
+ [Mencegah modifikasi yang tidak sah pada proyek buildspec](#action-context-keys-example-overridebuildspec)
+ [Batasi jenis komputasi untuk build Anda](#action-context-keys-example-computechoice)
+ [Kontrol pengaturan variabel lingkungan](#action-context-keys-example-env-variables)
+ [Gunakan variabel dalam nama kunci kondisi](#action-context-keys-example-variables)
+ [Periksa keberadaan atribut dalam permintaan API](#action-context-keys-example-env-denyoverride)

## Menerapkan pengaturan konektivitas VPC pada proyek dan armada Anda
<a name="action-context-keys-example-overrideVPC"></a>

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.](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html) multivalued.

------
#### [ 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 yang tidak sah pada proyek buildspec
<a name="action-context-keys-example-overridebuildspec"></a>

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.

------
#### [ 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
<a name="action-context-keys-example-computechoice"></a>

Kebijakan ini memungkinkan pembuatan armada yang hanya dapat membangun `c5.large` atau `m5.large` [menghitung jenis instans](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types). 

------
#### [ 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
<a name="action-context-keys-example-env-variables"></a>

Kebijakan ini memungkinkan pemanggil untuk mengganti variabel `STAGE` lingkungan menjadi salah satu atau`BETA`. `GAMMA` Ini juga secara eksplisit menyangkal penggantian menjadi`PRODUCTION`, dan `STAGE` menyangkal mengesampingkan variabel lingkungan. `MY_APP_VERSION` Untuk beberapa kunci konteks nilai, silakan lihat Kunci konteks [bernilai tunggal vs. multivalued](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html).

------
#### [ 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
<a name="action-context-keys-example-variables"></a>

Anda dapat menggunakan variabel dalam nama kunci kondisi seperti `secondarySources/${sourceIdentifier}.location` dan`secondaryArtifacts/${artifactIdentifier}.location`, di mana Anda dapat menentukan [sumber](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html) sekunder atau pengenal [artefak](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html) sekunder dalam kebijakan IAM. Kebijakan di bawah ini memungkinkan pemanggil untuk 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
<a name="action-context-keys-example-env-denyoverride"></a>

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