Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

DynamoDB トランザクションでの IAM の使用

AWS Identity and Access Management (IAM) を使用すると、トランザクションオペレーションが実行可能なアクションを制限できます。DynamoDB で IAM ポリシーを使用する詳しい方法については、「Amazon DynamoDB でアイデンティティベースのポリシー (IAM ポリシー) を使用する」を参照してください。

PutUpdateDelete、および Get アクションの権限は、基になる PutItemUpdateItemDeleteItem、および GetItem オペレーションに使用される権限により決定されます。ConditionCheck アクションの場合、IAM ポリシーで dynamodb:ConditionCheck 権限を使用できます。

以下に、DynamoDB トランザクションの設定に使用できる IAM ポリシーの例を示します。

例 1: トランザクションオペレーションを許可する

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

例 2: トランザクションオペレーションのみを許可する

{ "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" ] } } } ] }

例 3: 非トランザクション読み取り/書き込みを許可し、トランザクション読み取り/書き込みをブロックする

{ "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" ] } ] }

例 4: ConditionCheck の失敗時に情報が返されないようにする

{ "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" } } } ] }