Utilisation d'IAM avec des transactions DynamoDB - 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'IAM avec des transactions DynamoDB

Vous pouvez utiliser AWS Identity and Access Management (IAM) pour restreindre les actions que les opérations transactionnelles peuvent effectuer dans Amazon DynamoDB. Pour plus d'informations sur l'utilisation de politiques IAM dans DynamoDB, consultez Politiques basées sur l'identité pour DynamoDB.

Les autorisations pour Put, Update, Delete et Get sont régies par celle utilisées pour les opérations PutItem, UpdateItem, DeleteItem et GetItem sous-jacentes. Pour l'action ConditionCheck, vous pouvez utiliser l'autorisation dynamodb:ConditionCheckItem dans des politiques IAM.

Vous trouverez ci-dessous des exemples de politiques IAM que vous pouvez utiliser pour configurer des transactions DynamoDB.

Exemple 1 : autoriser les opérations transactionnelles

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:ConditionCheckItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:GetItem" ], "Resource": [ "arn:aws:dynamodb:*:*:table/table04" ] } ] }

Exemple 2 : autoriser uniquement les opérations transactionnelles

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:ConditionCheckItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:GetItem" ], "Resource": [ "arn:aws:dynamodb:*:*:table/table04" ], "Condition": { "ForAnyValue:StringEquals": { "dynamodb:EnclosingOperation": [ "TransactWriteItems", "TransactGetItems" ] } } } ] }

Exemple 3 : autoriser les lectures et écritures non transactionnelles, bloquer les lectures et écritures transactionnelles

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "dynamodb:ConditionCheckItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:GetItem" ], "Resource": [ "arn:aws:dynamodb:*:*:table/table04" ], "Condition": { "ForAnyValue:StringEquals": { "dynamodb:EnclosingOperation": [ "TransactWriteItems", "TransactGetItems" ] } } }, { "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:UpdateItem" ], "Resource": [ "arn:aws:dynamodb:*:*:table/table04" ] } ] }

Exemple 4 : Empêcher le renvoi d'informations en ConditionCheck cas de panne

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:ConditionCheckItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:GetItem" ], "Resource": "arn:aws:dynamodb:*:*:table/table01", "Condition": { "StringEqualsIfExists": { "dynamodb:ReturnValues": "NONE" } } } ] }