AWS::DynamoDB::Table ResourcePolicy - AWS CloudFormation

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

AWS::DynamoDB::Table ResourcePolicy

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

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

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

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

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

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

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

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

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

구문

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

JSON

{ "PolicyDocument" : Json }

YAML

PolicyDocument: Json

속성

PolicyDocument

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

필수 항목 여부: 예

유형: Json

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

예시

DynamoDB 테이블 및 해당 스트림에 리소스 기반 정책 연결

다음 CloudFormation 템플릿은 이름이 인 테이블을 생성하고 리소스 기반 정책을이 테이블에 MusicCollectionTable 연결합니다. 이 정책을 통해 사용자는 테이블에서 GetItem 작업을 foobar 수행할 수 있습니다. 또한 다음 템플릿은 스트림을 활성화한 다음 리소스 기반 정책을 스트림에 연결합니다. 스트림에 대한 리소스 기반 정책을 통해 사용자는 스트림에서 GetRecords, GetShardIteratorDescribeStream 작업을 foobar 수행할 수 있습니다.

중요

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

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MusicCollectionTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 }, "StreamSpecification": { "StreamViewType": "OLD_IMAGE", "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": "*" } ] } } }, "TableName": "MusicCollection", "ResourcePolicy": { "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/foobar" ] }, "Effect": "Allow", "Action": "dynamodb:GetItem", "Resource": "*" } ] } } } } } }