AWS::DynamoDB::GlobalTable ResourcePolicy - AWS CloudFormation

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS::DynamoDB::GlobalTable ResourcePolicy

테이블, 인덱스, 스트림과 같은 DynamoDB 리소스에 대한 권한이 포함된 리소스 기반 정책 문서를 생성하거나 업데이트합니다. 리소스 기반 정책을 사용하면 각 리소스에 액세스할 수 있는 사용자와 각 리소스에서 수행할 수 있는 작업을 지정하여 액세스 권한을 정의할 수 있습니다.

CloudFormation 템플릿에서는 정책을 제출하기 전에 YAML을 JSON으로 CloudFormation 변환하므로 JSON 또는 YAML 형식으로 정책을 제공할 수 있습니다. DynamoDB리소스 기반 정책에 대한 자세한 내용은 리소스 기반 정책 사용 및 리소스 기반 정책 예제를 참조하십시오. DynamoDB

템플릿에서 리소스 기반 정책을 정의할 때는 다음 고려 사항이 적용됩니다. CloudFormation

  • JSON 형식의 리소스 기반 정책 문서에 지원되는 최대 크기는 20KB입니다. DynamoDB 이 한도를 기준으로 정책 크기를 계산할 때 공백을 계산합니다.

  • 리소스 기반 정책은 드리프트 감지를 지원하지 않습니다. CloudFormation 스택 템플릿 외부에서 정책을 업데이트하는 경우 변경 내용으로 CloudFormation 스택을 업데이트해야 합니다.

  • 리소스 기반 정책은 변경을 지원하지 out-of-band 않습니다. 템플릿 외부에서 정책을 추가, 업데이트 또는 삭제하는 경우 CloudFormation 템플릿 내에 정책이 변경되지 않아도 변경 내용을 덮어쓰지 않습니다.

    예를 들어 템플릿에 리소스 기반 정책이 포함되어 있는데 나중에 템플릿 외부에서 업데이트한다고 가정해 보겠습니다. 템플릿에서 정책을 변경하지 않으면 의 업데이트된 정책이 템플릿의 정책과 동기화되지 DynamoDB 않습니다.

    반대로 템플릿에 리소스 기반 정책이 포함되어 있지 않지만 템플릿 외부에 정책을 추가한다고 가정해 보겠습니다. 이 정책은 템플릿에 추가하지 않는 DynamoDB 한 제거되지 않습니다. 템플릿에 정책을 추가하고 스택을 DynamoDB 업데이트하면 의 기존 정책이 템플릿에 정의된 정책과 일치하도록 업데이트됩니다.

  • 리소스 기반 정책 내에서 글로벌 테이블의 데이터를 복제하기 위한 SLR ( DynamoDB 서비스 연결 역할) 에 대한 작업이 거부되면 복제본 추가 또는 삭제가 실패하고 오류가 발생합니다.

  • AWS: :DynamoDB:: GlobalTable 리소스는 스택 업데이트를 배포하는 지역 이외의 지역에서 동일한 스택 업데이트에 복제본을 생성하는 것을 지원하지 않습니다.

모든 고려 사항의 전체 목록은 리소스 기반 정책 고려 사항을 참조하십시오.

명령문

AWS CloudFormation 템플릿에서 이 엔티티를 선언하려면 다음 구문을 사용하십시오.

JSON

{ "PolicyDocument" : Json }

YAML

PolicyDocument: Json

속성

PolicyDocument

지정된 DynamoDB 테이블, 해당 인덱스 및 스트림에 추가할 수 있는 권한이 포함된 리소스 기반 정책 문서입니다. CloudFormation 템플릿에서는 정책을 제출하기 전에 YAML을 JSON으로 CloudFormation 변환하므로 JSON 또는 YAML 형식으로 정책을 제공할 수 있습니다. DynamoDB리소스 기반 정책에 대한 자세한 내용은 리소스 기반 정책 사용 및 리소스 기반 정책 예제를 참조하십시오. DynamoDB

필수 항목 여부: 예

유형: Json

업데이트 필요 조건: 무중단

리소스를 사용하여 만든 테이블에 리소스 기반 정책 연결. DynamoDB AWS::DynamoDB::GlobalTable

다음 CloudFormation 템플릿은 AWS: :DynamoDB:: GlobalTable 리소스가 포함된 테이블을 생성하고 테이블과 해당 스트림에 리소스 기반 정책을 연결합니다. 이 정책을 통해 사용자는 테이블에서 작업을 수행할 foobar 수 있습니다. GetItem 또한 다음 템플릿은 스트림을 활성화한 다음 리소스 기반 정책을 스트림에 연결합니다. 스트림의 리소스 기반 정책을 통해 사용자는 foobar 스트림에서 GetRecords, GetShardIterator, 작업을 수행할 수 있습니다. DescribeStream

중요

CloudFormation 템플릿 내에서 스트림을 활성화하고 스트림에 대한 정책도 정의하면 스트림이 활성화된 후 스택 업데이트가 완료되기 전에만 정책이 스트림에 연결됩니다.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "GlobalMusicCollection": { "Type": "AWS::DynamoDB::GlobalTable", "Properties": { "TableName": "MusicCollection", "AttributeDefinitions": [{ "AttributeName": "Artist", "AttributeType": "S" }], "KeySchema": [{ "AttributeName": "Artist", "KeyType": "HASH" }], "BillingMode": "PAY_PER_REQUEST", "StreamSpecification": { "StreamViewType": "NEW_AND_OLD_IMAGES" }, "Replicas": [ { "Region": "us-east-1", "ResourcePolicy": { "PolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/foobar" ] }, "Effect": "Allow", "Action": "dynamodb:GetItem", "Resource": "*" }] } }, "ReplicaStreamSpecification": { "ResourcePolicy": { "PolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Principal": { "AWS": "arn:aws:iam::111122223333:user/foobar" }, "Effect": "Allow", "Action": [ "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:DescribeStream" ], "Resource": "*" }] } } } } ] } } } }