AWS::DynamoDB::GlobalTable ResourcePolicy - AWS CloudFormation

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

AWS::DynamoDB::GlobalTable 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 がテンプレートで定義されているポリシーと一致するように更新されます。

  • リソースベースのポリシー内で、グローバルテーブルのデータをレプリケートする DynamoDB サービスにリンクされたロール (SLR) のアクションが拒否された場合、レプリカの追加または削除はエラーで失敗します。

  • AWS::DynamoDB ::GlobalTable リソースは、スタック更新をデプロイするリージョン以外のリージョンで同じスタック更新にレプリカを作成することをサポートしていません。

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

Syntax

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

JSON

{ "PolicyDocument" : Json }

YAML

PolicyDocument: Json

プロパティ

PolicyDocument

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

必須: はい

型: Json

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

リソースを使用して作成された DynamoDB テーブルに AWS::DynamoDB::GlobalTableリソースベースのポリシーをアタッチします。

次の CloudFormation テンプレートは、AWS::DynamoDBGlobalTable :: resource を使用してテーブルを作成し、リソースベースのポリシーをテーブルとそのストリームにアタッチします。このポリシーにより、ユーザーはテーブルに対して GetItemオペレーションfoobarを実行できます。さらに、次のテンプレートはストリームを有効にし、リソースベースのポリシーをストリームにアタッチします。ストリームのリソースベースのポリシーにより、ユーザーはストリームに対して GetRecordsGetShardIterator、および DescribeStreamオペレーションfoobarを実行できます。

重要

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": "*" }] } } } } ] } } } }