

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.

# Exemple 3 : Refuser l'accès au flux à moins qu'un tag spécifique ne soit présent
<a name="streams-abac-example-3"></a>

À l'aide de la clé de `aws:TagKeys` condition, vous pouvez refuser de baliser un flux à moins qu'une clé de balise requise ne soit incluse dans la demande.

## Utilisation de AWS INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="streams-abac-example-3-cli"></a>

1. Ajoutez une politique gérée par le client à un rôle qui dispose d'un accès à DynamoDB, comme illustré dans l'exemple suivant.

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Deny",
         "Action": [
           "dynamodb:TagResource"
         ],
         "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*",
         "Condition": {
           "Null": {
             "aws:TagKeys": "false"
           },
           "ForAllValues:StringNotEquals": {
             "aws:TagKeys": "CostCenter"
           }
         }
       }
     ]
   }
   ```

1. Assumez le rôle et essayez de baliser un flux avec une clé de balise qui ne l'est pas`CostCenter`.

   ```
   aws dynamodb tag-resource \
     --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/myMusicTable/stream/2024-01-01T00:00:00.000 \
     --tags Key=Department,Value=Engineering
   ```

## Comportement avec et sans Streams ABAC
<a name="streams-abac-example-3-behavior"></a>

Sans Streams ABAC  
Si Streams ABAC n'est pas activé pour vous Compte AWS, DynamoDB n'envoie pas les clés de balise de la demande à IAM. La `Null` condition garantit que la condition est évaluée à faux s'il n'y a aucune clé de balise dans la demande. Comme la politique de refus ne correspond pas, la `tag-resource` commande s'exécute correctement.

Avec Streams ABAC  
Si Streams ABAC est activé pour vous Compte AWS, la clé de balise `Department` est évaluée par rapport à la clé de balise basée sur les conditions `CostCenter` présente dans la politique de refus. La clé de balise `Department` ne correspond pas à la clé de balise présente dans la politique de refus à cause de l'`StringNotEquals`opérateur. Par conséquent, l'`TagResource`action échoue et renvoie un`AccessDeniedException`.