AWS::DynamoDB::Table ResourcePolicy - AWS CloudFormation

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS::DynamoDB::Table ResourcePolicy

テーブル、インデックス、ストリームなどのリソースのアクセス許可を含む DynamoDB リソースベースのポリシードキュメントを作成または更新します。リソースベースのポリシーでは、各リソースにアクセスできるユーザーと、各リソースで実行できるアクションを指定することで、アクセス許可を定義できます。

テンプレートでは CloudFormation 、ポリシーを JSON または YAML 形式で指定できます。 は YAML を に送信する前に JSON CloudFormation に変換します DynamoDB。リソースベースのポリシーの詳細については、「 のリソースベースのポリシーの使用 DynamoDB」および「リソースベースのポリシーの例」を参照してください。

CloudFormation テンプレートでリソースベースのポリシーを定義する際には、次の考慮事項が適用されます。

  • JSON 形式のリソースベースのポリシードキュメントでサポートされる最大サイズは、この制限に対するポリシーのサイズを計算するときに 20 KB. DynamoDB counts 空白です。

  • リソースベースのポリシーは、ドリフト検出 をサポートしていません。 CloudFormation スタックテンプレートの外部でポリシーを更新する場合は、変更を加えて CloudFormation スタックを更新する必要があります。

  • リソースベースのポリシーは out-of-band 変更をサポートしていません。 CloudFormation テンプレート外のポリシーを追加、更新、または削除しても、テンプレート内のポリシーに変更がない場合、変更は上書きされません。

    例えば、テンプレートにリソースベースのポリシーが含まれているとします。このポリシーは、後でテンプレートの外部で更新します。テンプレート内のポリシーを変更しない場合、 で更新されたポリシーはテンプレート内のポリシーと同期 DynamoDB されません。

    逆に、テンプレートにリソースベースのポリシーが含まれていないが、テンプレートの外部にポリシーを追加するとします。このポリシーは、テンプレートに追加 DynamoDB しない限り、 から削除されません。テンプレートにポリシーを追加してスタックを更新すると、 の既存のポリシー DynamoDB がテンプレートで定義されているポリシーと一致するように更新されます。

すべての考慮事項の完全なリストについては、「リソースベースのポリシーに関する考慮事項」を参照してください。

Syntax

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

{ "PolicyDocument" : Json }

YAML

PolicyDocument: Json

プロパティ

PolicyDocument

指定された DynamoDB テーブル、インデックス、またはその両方に追加するアクセス許可を含むリソースベースのポリシードキュメント。テンプレートでは CloudFormation 、ポリシーを JSON または YAML 形式で指定できます。 は YAML を に送信する前に JSON CloudFormation に変換します DynamoDB。リソースベースのポリシーの詳細については、「 のリソースベースのポリシーの使用 DynamoDB」および「リソースベースのポリシーの例」を参照してください。

必須: はい

型: Json

アップデートに関する要件: 中断はありません

リソースベースのポリシーを DynamoDB テーブルとそのストリームにアタッチする

次の CloudFormation テンプレートは、 という名前のテーブルMusicCollectionTableを作成し、このテーブルにリソースベースのポリシーをアタッチします。このポリシーにより、ユーザーはテーブルに対して GetItemオペレーションfoobarを実行できます。さらに、次のテンプレートはストリームを有効にし、リソースベースのポリシーをストリームにアタッチします。ストリームのリソースベースのポリシーにより、ユーザーはストリームに対して GetRecordsGetShardIterator、および DescribeStreamオペレーション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": "*" } ] } } } } } }