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 créez un rôle IAM avec une politique qui inclut des conditions basées sur des balises. Ensuite, vous testez les autorisations autorisées sur le flux DynamoDB en respectant les conditions des balises.

Étape 1 : ajouter des balises à un flux DynamoDB

Vous pouvez ajouter des balises à DynamoDB Streams à l'aide de la CLI AWS 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 stratégie 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 le flux contient la balise paire clé-valeur :. "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 par le biais d'une autre politique.

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

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

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