

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# AWS CodeBuild clés de condition
<a name="action-context-keys"></a>

AWS CodeBuild fournit un ensemble de clés de condition que vous pouvez utiliser dans les politiques IAM pour appliquer les politiques de votre organisation sur les CodeBuild ressources telles que les projets et les flottes. Les clés de condition couvrent la plupart des contextes de demande d' CodeBuild API, notamment les paramètres réseau, les configurations d'informations d'identification et les restrictions de calcul.

**Topics**
+ [Appliquez les paramètres de connectivité VPC à vos projets et à vos flottes](#action-context-keys-example-overrideVPC)
+ [Empêchez les modifications non autorisées des spécifications de construction du projet](#action-context-keys-example-overridebuildspec)
+ [Limitez les types de calcul pour vos builds](#action-context-keys-example-computechoice)
+ [Réglages variables de l'environnement de contrôle](#action-context-keys-example-env-variables)
+ [Utiliser des variables dans les noms des clés de condition](#action-context-keys-example-variables)
+ [Vérifier l'existence d'attributs dans les demandes d'API](#action-context-keys-example-env-denyoverride)

## Appliquez les paramètres de connectivité VPC à vos projets et à vos flottes
<a name="action-context-keys-example-overrideVPC"></a>

Cette politique permet à l'appelant d'utiliser les sous-réseaux et les groupes de sécurité sélectionnés VPCs lors de la création de CodeBuild projets et de flottes. Pour plus d'informations sur les clés de contexte à valeurs multiples, voir Clés de contexte [à valeur unique ou clés de contexte à valeurs multiples](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"
                ]
            }
        }
    }]
}
```

------

## Empêchez les modifications non autorisées des spécifications de construction du projet
<a name="action-context-keys-example-overridebuildspec"></a>

Cette politique ne permet pas à l'appelant de remplacer les spécifications de construction dans le champ. `buildspecOverride`

**Note**  
La clé de `codebuild:source.buildspec` condition prend uniquement en charge l'opérateur Null pour vérifier l'existence du champ API. Il n'évalue pas le contenu de la spécification de construction.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": "codebuild:StartBuild",
        "Resource": "*"
    }, {
        "Effect": "Deny",
        "Action": "codebuild:StartBuild",
        "Resource": "*",
        "Condition": {
            "Null": {
                "codebuild:source.buildspec": "false"
            }
        }
    }]
}
```

------

## Limitez les types de calcul pour vos builds
<a name="action-context-keys-example-computechoice"></a>

Cette politique permet de créer des flottes capables de construire uniquement avec `c5.large` ou de `m5.large` [calculer le type d'instance](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"]
            }
        }
    }]
}
```

------

## Réglages variables de l'environnement de contrôle
<a name="action-context-keys-example-env-variables"></a>

Cette politique permet à l'appelant de remplacer la variable d'`STAGE`environnement par l'une ou l'autre`BETA`. `GAMMA` Il nie également explicitement le remplacement par `STAGE` être et nie `PRODUCTION` le remplacement de la variable d'`MY_APP_VERSION`environnement. Pour les clés de contexte à valeurs multiples, consultez la section Clés de [contexte à valeur unique ou à valeurs multiples](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"
                    ]
                }
            }
        }
    ]
}
```

------

## Utiliser des variables dans les noms des clés de condition
<a name="action-context-keys-example-variables"></a>

Vous pouvez utiliser des variables dans les noms de clés de condition, tels que `secondarySources/${sourceIdentifier}.location` et`secondaryArtifacts/${artifactIdentifier}.location`, où vous pouvez spécifier votre [source](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html) secondaire ou votre identifiant d'[artefact](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html) secondaire dans la politique IAM. La politique ci-dessous permet à l'appelant de créer un projet avec un emplacement source spécifique pour la source `mySecondSource` secondaire.

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

****  

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

------

## Vérifier l'existence d'attributs dans les demandes d'API
<a name="action-context-keys-example-env-denyoverride"></a>

CodeBuild prend en charge les clés de condition pour vérifier l'existence de certains champs dans la demande d'API. La politique applique l'exigence VPC lors de la création ou de la mise à jour de projets.

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