전역 테이블에 IAM 사용 - Amazon DynamoDB

전역 테이블에 IAM 사용

전역 테이블을 처음으로 생성하는 경우, Amazon DynamoDB는 사용자를 위한 AWS Identity and Access Management(IAM) 서비스 연결 역할을 자동으로 생성합니다. 이름이 AWSServiceRoleForDynamoDBReplication인 이 역할은 DynamoDB가 사용자를 대신하여 전역 테이블에 대한 교차 리전 복제를 관리하도록 허용합니다. 이 서비스 연결 역할을 삭제하지 마세요. 삭제하면 모든 전역 테이블이 더 이상 작동하지 않습니다.

서비스 연결 역할에 대한 자세한 내용은 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" ] } ] }