

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# AWS CodeBuild claves de condición
<a name="action-context-keys"></a>

AWS CodeBuild proporciona un conjunto de claves de condición que puede utilizar en las políticas de IAM para aplicar las políticas de su organización a CodeBuild recursos como proyectos y flotas. Las claves de condición cubren la mayoría de los contextos de solicitud de CodeBuild API, incluidos los ajustes de red, las configuraciones de credenciales y las restricciones informáticas.

**Topics**
+ [Aplicación de configuración de conectividad de VPC a proyectos y flotas](#action-context-keys-example-overrideVPC)
+ [Evitación de modificaciones no autorizadas en buildspec de un proyecto](#action-context-keys-example-overridebuildspec)
+ [Restricción de tipos de computación para compilaciones](#action-context-keys-example-computechoice)
+ [Control de configuración de variables de entorno](#action-context-keys-example-env-variables)
+ [Uso de variables en nombres de claves de condición](#action-context-keys-example-variables)
+ [Comprobación de la existencia de atributos en solicitudes de API](#action-context-keys-example-env-denyoverride)

## Aplicación de configuración de conectividad de VPC a proyectos y flotas
<a name="action-context-keys-example-overrideVPC"></a>

Esta política permite a la persona que llama usar las subredes y los grupos de seguridad seleccionados VPCs al crear CodeBuild proyectos y flotas. Para obtener más información sobre claves de contexto multivalor, consulte [Claves de contexto de valor único y multivalor](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"
                ]
            }
        }
    }]
}
```

------

## Evitación de modificaciones no autorizadas en buildspec de un proyecto
<a name="action-context-keys-example-overridebuildspec"></a>

Esta política no permite a la persona que llama anular la buildspec en el campo `buildspecOverride`.

**nota**  
La clave de condición de `codebuild:source.buildspec` solo admite el operador Null para comprobar la existencia del campo de la API. No evalúa el contenido de la 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"
            }
        }
    }]
}
```

------

## Restricción de tipos de computación para compilaciones
<a name="action-context-keys-example-computechoice"></a>

Esta política permite crear flotas que pueden compilarse únicamente con un [tipo de instancia de computación](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types) `c5.large` o `m5.large`. 

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

****  

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

------

## Control de configuración de variables de entorno
<a name="action-context-keys-example-env-variables"></a>

Esta política permite a la persona que llama anular la variable de entorno `STAGE` para que sea `BETA` o `GAMMA`. También deniega explícitamente anular `STAGE` por `PRODUCTION` y deniega la anulación de la variable de entorno `MY_APP_VERSION`. Para obtener información sobre claves de contexto varios valores, consulte [Claves de contexto de valor único y multivalor](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"
                    ]
                }
            }
        }
    ]
}
```

------

## Uso de variables en nombres de claves de condición
<a name="action-context-keys-example-variables"></a>

Puede usar variables en nombres de claves de condición, como `secondarySources/${sourceIdentifier}.location` y `secondaryArtifacts/${artifactIdentifier}.location`, donde puede especificar el [origen](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html) secundario o el identificador de [artefacto](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html) secundario en la política de IAM. La siguiente política permite a la persona que llama crear un proyecto con una ubicación de código fuente específica para el código fuente secundario `mySecondSource`.

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

****  

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

------

## Comprobación de la existencia de atributos en solicitudes de API
<a name="action-context-keys-example-env-denyoverride"></a>

CodeBuild admite claves de condición para comprobar la existencia de algunos campos en la solicitud de API. La política aplica el requisito de VPC al crear o actualizar proyectos.

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