DynamoDB 글로벌 테이블에 IAM 사용
전역 테이블을 처음으로 생성하는 경우, Amazon DynamoDB는 사용자를 위한 AWS Identity and Access Management(IAM) 서비스 연결 역할을 자동으로 생성합니다. 이름이 AWSServiceRoleForDynamoDBReplication
서비스 연결 역할에 대한 자세한 내용은 IAM 사용 설명서의 서비스 연결 역할 사용을 참조하세요
DynamoDB에서 복제 테이블을 생성하려면 소스 리전에 다음과 같은 권한이 있어야 합니다.
-
dynamodb:UpdateTable
DynamoDB에서 복제 테이블을 생성하려면 대상 리전에 다음과 같은 권한이 있어야 합니다.
-
dynamodb:CreateTable
-
dynamodb:CreateTableReplica
-
dynamodb:Scan
-
dynamodb:Query
-
dynamodb:UpdateItem
-
dynamodb:PutItem
-
dynamodb:GetItem
-
dynamodb:DeleteItem
-
dynamodb:BatchWriteItem
DynamoDB에서 복제 테이블을 삭제하려면 대상 리전에 다음과 같은 권한이 있어야 합니다.
-
dynamodb:DeleteTable
-
dynamodb:DeleteTableReplica
UpdateTableReplicaAutoScaling
에서 복제본 Auto Scaling 정책을 업데이트하려면 테이블 복제본이 있는 모든 리전에서 다음과 같은 권한이 있어야 합니다.
-
application-autoscaling:DeleteScalingPolicy
-
application-autoscaling:DeleteScheduledAction
-
application-autoscaling:DeregisterScalableTarget
-
application-autoscaling:DescribeScalableTargets
-
application-autoscaling:DescribeScalingActivities
-
application-autoscaling:DescribeScalingPolicies
-
application-autoscaling:DescribeScheduledActions
-
application-autoscaling:PutScalingPolicy
-
application-autoscaling:PutScheduledAction
-
application-autoscaling:RegisterScalableTarget
UpdateTimeToLive
를 사용하려면 테이블 복제본이 있는 모든 리전에서 dynamodb:UpdateTimeToLive
에 대한 권한이 있어야 합니다.
예: 복제본 추가
다음의 IAM 정책은 전역 테이블에 복제본을 추가할 수 있는 권한을 부여합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "dynamodb:CreateTableReplica", "iam:CreateServiceLinkedRole" ], "Resource": "*" } ] }
예시: 자동 스케일링 정책 업데이트
다음의 IAM 정책은 글로벌 테이블에 Auto Scaling을 업데이트할 수 있는 권한을 부여합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "application-autoscaling:RegisterScalableTarget", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:DeregisterScalableTarget" ], "Resource": "*" } ] }
예: 특정 테이블 이름 및 리전에 대한 복제본 생성 허가
다음의 IAM 정책은 세 리전에 복제본이 있는 Customers
테이블에 대해 테이블과 복제본 생성을 허가하는 권한을 부여합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/Customers", "arn:aws:dynamodb:us-west-1:123456789012:table/Customers", "arn:aws:dynamodb:eu-east-2:123456789012:table/Customers" ] } ] }