View a markdown version of this page

Exemple 3 : refuser l'accès au stream sauf si une balise spécifique est présente - 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 stream sauf si une balise spécifique est présente

À 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 disposant 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 contenues dans la demande à IAM. La Null condition garantit que la condition est évaluée à false 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.