

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# AWS CodeBuild chaves de condição
<a name="action-context-keys"></a>

AWS CodeBuild fornece um conjunto de chaves de condição que você pode usar nas políticas do IAM para aplicar suas políticas organizacionais em CodeBuild recursos como projetos e frotas. As chaves de condição abrangem a maioria dos contextos de solicitação da CodeBuild API, incluindo configurações de rede, configurações de credenciais e restrições computacionais.

**Topics**
+ [Aplicar as configurações de conectividade da VPC em projetos e frotas](#action-context-keys-example-overrideVPC)
+ [Evitar modificações não autorizadas no buildspec do projeto](#action-context-keys-example-overridebuildspec)
+ [Restringir os tipos de computação para as compilações](#action-context-keys-example-computechoice)
+ [Controlar configurações de variável de ambiente](#action-context-keys-example-env-variables)
+ [Usar variáveis em nomes de chaves de condição](#action-context-keys-example-variables)
+ [Verificar a existência de atributos nas solicitações de API](#action-context-keys-example-env-denyoverride)

## Aplicar as configurações de conectividade da VPC em projetos e frotas
<a name="action-context-keys-example-overrideVPC"></a>

Essa política permite que o chamador use os grupos selecionados VPCs, sub-redes e segurança ao criar CodeBuild projetos e frotas. Consulte mais informações sobre chaves de contexto de valores múltiplos, em [Chaves de contexto de valor único vs. de múltiplos valores](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: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"
                ]
            }
        }
    }]
}
```

------

## Evitar modificações não autorizadas no buildspec do projeto
<a name="action-context-keys-example-overridebuildspec"></a>

Essa política não permite que o chamador substitua o buildspec no campo `buildspecOverride`.

**nota**  
A chave de condição `codebuild:source.buildspec` é compatível somente com o operador Null para verificar a existência do campo da API. Ela não avalia o conteúdo do 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"
            }
        }
    }]
}
```

------

## Restringir os tipos de computação para as compilações
<a name="action-context-keys-example-computechoice"></a>

Essa política permite criar frotas que podem ser compiladas somente com o [tipo de instância de computação](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types) `c5.large` ou `m5.large`. 

------
#### [ JSON ]

****  

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

------

## Controlar configurações de variável de ambiente
<a name="action-context-keys-example-env-variables"></a>

Essa política permite que o chamador substitua a variável de ambiente `STAGE` por `BETA` ou `GAMMA`. Também nega explicitamente a substituição de `STAGE` por `PRODUCTION` e nega a substituição da variável de ambiente `MY_APP_VERSION`. Consulte chaves de contexto de múltiplos valores em [Chaves de contexto de valor único vs. de múltiplos valores](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"
                    ]
                }
            }
        }
    ]
}
```

------

## Usar variáveis em nomes de chaves de condição
<a name="action-context-keys-example-variables"></a>

É possível usar variáveis em nomes de chaves de condição, como `secondarySources/${sourceIdentifier}.location` e`secondaryArtifacts/${artifactIdentifier}.location`, onde você pode especificar o identificador da [origem](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html) secundária ou do [artefato](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html) secundário na política do IAM. A política abaixo permite que o chamador crie um projeto com um local de origem específico para `mySecondSource` de origem secundária.

------
#### [ JSON ]

****  

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

------

## Verificar a existência de atributos nas solicitações de API
<a name="action-context-keys-example-env-denyoverride"></a>

CodeBuild suporta chaves de condição para verificar a existência de alguns campos na solicitação da API. A política impõe o requisito da VPC ao criar ou atualizar projetos.

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