View a markdown version of this page

Utilisation d'ABAC avec DynamoDB Streams - 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.

Utilisation d'ABAC avec DynamoDB Streams

Les étapes suivantes montrent comment configurer des autorisations à l'aide d'ABAC pour DynamoDB Streams. Dans cet exemple de scénario, vous ajoutez des balises à un flux DynamoDB et vous créez un rôle IAM avec une politique qui inclut des conditions basées sur des balises. Vous testez ensuite les autorisations autorisées sur le flux DynamoDB en faisant correspondre les conditions de la balise.

Étape 1 : ajouter des balises à un flux DynamoDB

Vous pouvez ajouter des balises à DynamoDB Streams à l'aide de l' AWS interface de ligne de commande ou du SDK. La commande tag-resource CLI suivante ajoute une balise à un flux.

aws dynamodb tag-resource \ --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/MusicTable/stream/2024-01-01T00:00:00.000 \ --tags Key=environment,Value=staging
Note

Pour trouver l'ARN de votre flux, utilisez la describe-table commande et recherchez le LatestStreamArn champ dans la réponse.

Étape 2 : Créer un rôle IAM avec une politique incluant des conditions basées sur des balises

Créez une politique IAM à l'aide de la clé de aws:ResourceTag/{{tag-key}} condition pour comparer la paire clé-valeur de balise spécifiée dans la politique IAM avec la paire clé-valeur attachée au flux. L'exemple de politique suivant permet aux utilisateurs d'obtenir des enregistrements et de décrire un flux si celui-ci contient la paire clé-valeur de balise :. "environment": "staging" Si un flux ne possède pas la paire clé-valeur de balise spécifiée, ces actions sont refusées.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "staging" } } } ] }

Étape 3 : Tester les autorisations accordées

  1. Attachez la politique IAM à un utilisateur ou à un rôle de test dans votre Compte AWS. Assurez-vous que le principal IAM que vous utilisez n'a pas déjà accès au flux DynamoDB via une autre politique.

  2. Assurez-vous que votre flux DynamoDB contient la clé de "environment" balise dont la valeur est. "staging"

  3. Effectuez les dynamodb:GetRecords actions dynamodb:DescribeStream et sur le flux balisé. Ces actions réussissent si la paire clé-valeur de la "environment": "staging" balise est présente.

    Si vous effectuez ces actions sur un flux qui ne possède pas la paire clé-valeur de "environment": "staging" balise, votre demande échoue avec un. AccessDeniedException