本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
IAM 搭配 DynamoDB 交易使用
您可以使用 AWS Identity and Access Management (IAM) 限制交易操作可在 Amazon DynamoDB 中執行的動作。如需在 DynamoDB 中使用IAM政策的詳細資訊,請參閱 適用於 DynamoDB 的以身分為基礎的政策。
Put
、Update
、Delete
和 Get
動作的許可,受到底層 PutItem
、UpdateItem
、DeleteItem
和 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" } } } ] }