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.
Rubriques
É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
-
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.
-
Assurez-vous que votre flux DynamoDB contient la clé de
"environment"balise dont la valeur est."staging" -
Effectuez les
dynamodb:GetRecordsactionsdynamodb:DescribeStreamet 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