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

전역 테이블에 IAM 사용

중요

이 설명서는 버전 2017.11.29(레거시)의 글로벌 테이블에 대한 것이므로 새 글로벌 테이블의 경우 사용하지 않아야 합니다. 가능하면 글로벌 테이블 버전 2019.11.21(현재)을 사용해야 합니다. 이는 2017.11.29(레거시)보다 유연성과 효율성이 뛰어나고 쓰기 용량을 적게 소비합니다.

사용 중인 버전을 확인하려면 사용 중인 글로벌 테이블 버전 확인 섹션을 참조하세요. 기존 전역 테이블을 버전 2017.11.29(레거시)에서 버전 2019.11.21(현재)로 업데이트하는 경우 글로벌 테이블 업그레이드 섹션을 참조하세요.

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

서비스 연결 역할에 대한 자세한 내용은 IAM 사용 설명서서비스 연결 역할 사용을 참조하세요

DynamoDB에서 전역 테이블을 생성하고 관리하려면 다음의 각 항목에 액세스할 수 있는 dynamodb:CreateGlobalTable 권한이 있어야 합니다.

  • 추가하려는 복제본 테이블.

  • 이미 전역 테이블의 요소인 각각의 기존 복제본.

  • 전역 테이블 자체.

DynamoDB의 전역 테이블에 대한 설정(UpdateGlobalTableSettings)을 업데이트하려면 dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicyapplication-autoscaling:DeregisterScalableTarget 권한이 있어야 합니다.

기존 조정 정책을 업데이트할 때 application-autoscaling:DeleteScalingPolicyapplication-autoscaling:DeregisterScalableTarget 권한이 필요합니다. 이렇게 하면 새로운 정책을 테이블이나 보조 인덱스에 연결하기 전에 전역 테이블 서비스가 기존의 조정 정책을 제거할 수 있습니다.

IAM 정책을 사용하여 하나의 복제 테이블에 대한 액세스 권한을 관리하는 경우, 해당 전역 테이블의 모든 다른 복제본에 동일한 정책을 적용해야 합니다. 이렇게 하면 모든 복제본 테이블에서 일관된 권한 모델을 유지할 수 있습니다.

전역 테이블의 모든 복제본에 동일한 IAM 정책을 사용함으로써, 전역 테이블 데이터에 대한 읽기 및 쓰기 액세스 권한을 의도치 않게 부여하는 것을 방지할 수도 있습니다. 예를 들어, 전역 테이블의 한 복제본에만 액세스할 수 있는 사용자를 고려합니다. 해당 사용자가 이 복제본에 쓸 수 있는 경우, DynamoDB는 다른 모든 복제 테이블에 쓰기를 전파합니다. 실제로 사용자는 전역 테이블의 모든 다른 복제본에 (간접적으로) 쓸 수 있습니다. 이 시나리오는 모든 복제본 테이블에 일관된 IAM 정책을 사용하여 방지할 수 있습니다.

예: CreateGlobalTable 작업 허용

전역 테이블에 복제본을 추가할 수 있으려면 전역 테이블과 해당하는 각 복제본 테이블에 대한 dynamodb:CreateGlobalTable 권한이 있어야 합니다.

다음 IAM 정책은 모든 테이블에서의 CreateGlobalTable 작업을 허용할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:CreateGlobalTable"], "Resource": "*" } ] }

예: UpdateGlobalTable, DescribeLimits, application-autoscaling:DeleteScalingPolicy 및 application-autoscaling:DeregisterScalableTarget 작업 허용

DynamoDB의 전역 테이블에 대한 설정(UpdateGlobalTableSettings)을 업데이트하려면 dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicyapplication-autoscaling:DeregisterScalableTarget 권한이 있어야 합니다.

다음 IAM 정책은 모든 테이블에서의 UpdateGlobalTableSettings 작업을 허용할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:UpdateGlobalTable", "dynamodb:DescribeLimits", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget" ], "Resource": "*" } ] }

예: 특정 리전에만 허용된 복제본이 있는 특정 전역 테이블 이름에 대한 CreateGlobalTable 작업 허용

다음 IAM 정책은 2개의 리전에 복제본이 있는 Customers라는 글로벌 테이블을 생성하는 CreateGlobalTable 작업을 허용하기 위해 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:CreateGlobalTable", "Resource": [ "arn:aws:dynamodb::123456789012:global-table/Customers", "arn:aws:dynamodb:us-east-1:123456789012:table/Customers", "arn:aws:dynamodb:us-west-1:123456789012:table/Customers" ] } ] }