

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.

# Exemples de clés de contexte à valeurs multiples
<a name="reference_policies_condition_examples-multi-valued-context-keys"></a>

L'ensemble suivant d'exemples de politiques montre comment créer des conditions de politique à l'aide de clés de contexte à valeurs multiples.

## Exemple : politique de refus avec opérateur de jeu de conditions ForAllValues
<a name="reference_policies_condition_examples-multi-valued-context-keys-1"></a>

Les exemples suivants montrent comment utiliser une politique basée sur l’identité pour interdire l’utilisation d’actions de balisage IAM lorsque des préfixes de clé de balise spécifiques sont inclus dans la demande. Les valeurs pour [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys) incluent un caractère générique (\*) pour la correspondance partielle des chaînes. La politique inclut l'opérateur d'ensemble `ForAllValues` avec la clé de contexte `aws:TagKeys`, car la clé de contexte de la demande peut inclure plusieurs valeurs. Afin que la clé de contexte `aws:TagKeys` corresponde, chaque valeur du contexte de la demande doit correspondre à au moins une valeur de la politique.

L’opérateur d’ensemble `ForAllValues` renvoie également vrai s’il n’y a aucune clé de contexte dans la demande.

Vous pouvez éviter que des clés de contexte manquantes ou des clés de contexte contenant des valeurs vides ne soient considérées comme vraies en incluant l’opérateur de condition `Null` dans votre politique avec une valeur `false` pour vérifier si la clé de contexte de la demande existe et si sa valeur n’est pas nulle. Pour de plus amples informations, veuillez consulter [Opérateur de condition pour vérifier l'existence de clés de condition](reference_policies_elements_condition_operators.md#Conditions_Null).

**Important**  
Cette politique ne permet aucune action. Utilisez cette stratégie conjointement à d'autres stratégies qui autorisent des actions spécifiques.

**Example Refuser une seule valeur de condition de politique pour une clé de contexte à valeurs multiples**  
Dans l’exemple suivant, la politique refuse les demandes dont les valeurs pour `aws:TagKeys` dans la demande n’incluent pas le préfixe **key1**. Le contexte de demande peut comporter plusieurs valeurs, mais en raison de l’opérateur d’ensemble de conditions `ForAllValues`, toutes les valeurs de clé de balise du contexte de demande doivent commencer par le préfixe **key1**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": "key1*"
        }
      }
    }
  ]
}
```
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande. Pour une instruction Refuser, Correspondance est refusée et Aucune correspondance n’est pas refusée, elle peut donc être autorisée par une autre instruction.  


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  | **Aucune correspondance**<br />Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Aucune correspondance**<br />Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – {{key2}}:audit</pre>  | **Match** | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | Aucun `aws:TagKeys` dans le contexte de la demande. | **Match** | 

**Example Refuser plusieurs valeurs de condition de politique pour une clé de contexte à valeurs multiples**  
Dans l’exemple suivant, la politique refuse les demandes dont les valeurs pour `aws:TagKeys` dans la demande n’incluent pas le préfixe **key1** ou **key2**. Le contexte de demande peut comporter plusieurs valeurs, mais en raison de l’opérateur d’ensemble de conditions `ForAllValues`, toutes les valeurs de clé de balise du contexte de demande doivent commencer par le préfixe **key1** ou **key2**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": [
            "key1*",
            "key2*"
          ]
        }
      }
    }
  ]
}
```
Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande. Pour une instruction Refuser, Correspondance est refusée et Aucune correspondance n’est pas refusée, elle peut donc être autorisée par une autre instruction.  


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  | **Aucune correspondance**<br />Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Aucune correspondance**<br />Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key2:audit</pre>  | **Aucune correspondance**<br />Peut être autorisé par une autre instruction. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – {{key3}}:legal</pre>  | **Match** | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | Aucun `aws:TagKeys` dans le contexte de la demande. | **Match** | 

## Exemple : politique de refus avec opérateur de jeu de conditions ForAnyValue
<a name="reference_policies_condition_examples-multi-valued-context-keys-2"></a>

L'exemple de politique basée sur l'identité suivant interdit la création d'instantanés de volumes d'instance EC2 si des instantanés sont balisés à l'aide de l'une des clés de balise spécifiées dans la politique, `environment` ou `webserver`. La politique inclut l'opérateur d'ensemble `ForAnyValue` avec la clé de contexte `aws:TagKeys`, car la clé de contexte de la demande peut inclure plusieurs valeurs. Si votre demande de balisage inclut l'une des valeurs de clés de balise spécifiées dans la politique, la clé de contexte `aws:TagKeys` renvoie la valeur true en invoquant l'effet de la politique de refus.

**Important**  
Cette politique ne permet aucune action. Utilisez cette stratégie conjointement à d'autres stratégies qui autorisent des actions spécifiques.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ec2:CreateSnapshot",
        "ec2:CreateSnapshots"
      ],
      "Resource": "arn:aws:ec2:us-west-2::snapshot/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": "webserver"
        }
      }
    }
  ]
}
```

------

Le tableau suivant montre comment cette politique est AWS évaluée en fonction des valeurs des clés de condition figurant dans votre demande. Pour une instruction Refuser, Correspondance est refusée et Aucune correspondance n’est pas refusée, elle peut donc être autorisée par une autre instruction.


| Condition de politique | Contexte de la demande | Résultat | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – webserver</pre>  | **Match** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – webserver<br />  – test</pre>  | **Match** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – test</pre>  | **Aucune correspondance**<br />Peut être autorisé par une autre instruction. | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | Aucun `aws:TagKeys` dans le contexte de la demande. | **Aucune correspondance**<br />Peut être autorisé par une autre instruction. | 