View a markdown version of this page

Exemple 3 : Refuser l'accès au flux à moins qu'un tag spécifique ne soit présent - Amazon DynamoDB

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

À 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)

  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" } } } ] }
  2. Assumez le rôle et essayez de baliser un flux avec une clé de balise qui ne l'est pasCostCenter.

    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

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'StringNotEqualsopérateur. Par conséquent, l'TagResourceaction échoue et renvoie unAccessDeniedException.