AWS Identity and Access Management(IAM)를 사용하여 Amazon DynamoDB에서 트랜잭션 작업이 수행할 수 있는 작업을 제한할 수 있습니다. DynamoDB에서 IAM 정책을 사용하는 방법에 대한 자세한 내용은 DynamoDB에 대한 자격 증명 기반 정책 섹션을 참조하세요.
Put
, Update
, Delete
및 Get
작업에 대한 권한은 기본 PutItem
, UpdateItem
, DeleteItem
및 GetItem
작업에 사용되는 권한에 따라 규제됩니다. ConditionCheck
작업의 경우 IAM 정책에서 dynamodb:ConditionCheckItem
권한을 사용할 수 있습니다.
다음은 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"
}
}
}
]
}