AWS::DynamoDB::GlobalTable ResourcePolicy - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS::DynamoDB::GlobalTable ResourcePolicy

Erstellt oder aktualisiert ein ressourcenbasiertes Richtliniendokument, das die Berechtigungen für - DynamoDB Ressourcen enthält, z. B. eine Tabelle, ihre Indizes und den Stream. Mit ressourcenbasierten Richtlinien können Sie Zugriffsberechtigungen definieren, indem Sie angeben, wer Zugriff auf jede Ressource hat und welche Aktionen sie für jede Ressource ausführen dürfen.

In einer CloudFormation Vorlage können Sie die Richtlinie im JSON- oder YAML-Format angeben, da YAML in JSON CloudFormation konvertiert, bevor es an gesendet wird DynamoDB. Weitere Informationen zu ressourcenbasierten Richtlinien finden Sie unter Verwenden ressourcenbasierter Richtlinien für DynamoDB und Beispiele für ressourcenbasierte Richtlinien.

Bei der Definition ressourcenbasierter Richtlinien in Ihren CloudFormation Vorlagen gelten die folgenden Überlegungen:

  • Die maximale Größe, die für ein ressourcenbasiertes Richtliniendokument im JSON-Format unterstützt wird, beträgt 20 KB. DynamoDB counts-Whitespaces, wenn die Größe einer Richtlinie anhand dieses Limits berechnet wird.

  • Ressourcenbasierte Richtlinien unterstützen keine Abweichungserkennung. Wenn Sie eine Richtlinie außerhalb der CloudFormation Stack-Vorlage aktualisieren, müssen Sie den CloudFormation Stack mit den Änderungen aktualisieren.

  • Ressourcenbasierte Richtlinien unterstützen keine out-of-band Änderungen. Wenn Sie eine Richtlinie außerhalb der CloudFormation Vorlage hinzufügen, aktualisieren oder löschen, wird die Änderung nicht überschrieben, wenn es keine Änderungen an der Richtlinie innerhalb der Vorlage gibt.

    Angenommen, Ihre Vorlage enthält eine ressourcenbasierte Richtlinie, die Sie später außerhalb der Vorlage aktualisieren. Wenn Sie keine Änderungen an der Richtlinie in der Vorlage vornehmen, DynamoDB wird die aktualisierte Richtlinie in nicht mit der Richtlinie in der Vorlage synchronisiert.

    Nehmen wir dagegen an, dass Ihre Vorlage keine ressourcenbasierte Richtlinie enthält, Sie jedoch eine Richtlinie außerhalb der Vorlage hinzufügen. Diese Richtlinie wird nicht aus entfernt DynamoDB , solange Sie sie nicht zur Vorlage hinzufügen. Wenn Sie der Vorlage eine Richtlinie hinzufügen und den Stack aktualisieren, DynamoDB wird die vorhandene Richtlinie in so aktualisiert, dass sie mit der in der Vorlage definierten Richtlinie übereinstimmt.

  • Wenn innerhalb einer ressourcenbasierten Richtlinie die Aktion für eine DynamoDB serviceverknüpfte Rolle (SLR) zum Replizieren von Daten für eine globale Tabelle verweigert wird, schlägt das Hinzufügen oder Löschen eines Replikats mit einem Fehler fehl.

  • Die Ressource AWS::DynamoDB ::GlobalTable unterstützt nicht das Erstellen eines Replikats in derselben Stack-Aktualisierung in anderen Regionen als der Region, in der Sie die Stack-Aktualisierung bereitstellen.

Eine vollständige Liste aller Überlegungen finden Sie unter Überlegungen zu ressourcenbasierten Richtlinien.

Syntax

Um diese Entität in Ihrer AWS CloudFormation Vorlage zu deklarieren, verwenden Sie die folgende Syntax:

JSON

{ "PolicyDocument" : Json }

YAML

PolicyDocument: Json

Eigenschaften

PolicyDocument

Ein ressourcenbasiertes Richtliniendokument, das Berechtigungen zum Hinzufügen zur angegebenen DynamoDB Tabelle, ihren Indizes und zum Stream enthält. In einer CloudFormation Vorlage können Sie die Richtlinie im JSON- oder YAML-Format angeben, da YAML in JSON CloudFormation konvertiert, bevor es an gesendet wird DynamoDB. Weitere Informationen zu ressourcenbasierten Richtlinien finden Sie unter Verwenden ressourcenbasierter Richtlinien für DynamoDB und Beispiele für ressourcenbasierte Richtlinien.

Erforderlich: Ja

Type: Json

Aktualisierung erfordert: Keine Unterbrechung

Beispiele

Anfügen einer ressourcenbasierten Richtlinie an eine DynamoDB Tabelle, die mit der AWS::DynamoDB::GlobalTable Ressource erstellt wurde.

Die folgende CloudFormation Vorlage erstellt eine Tabelle mit der Ressource AWS::DynamoDB ::GlobalTable und fügt der Tabelle und ihrem Stream eine ressourcenbasierte Richtlinie an. Diese Richtlinie ermöglicht es dem Benutzerfoobar, die -GetItemOperation für die Tabelle auszuführen. Darüber hinaus aktiviert die folgende Vorlage einen Stream und fügt dann eine ressourcenbasierte Richtlinie an den Stream an. Die ressourcenbasierte Richtlinie für den Stream ermöglicht es dem Benutzerfoobar, die DescribeStream Operationen GetRecords, GetShardIteratorund für den Stream auszuführen.

Wichtig

Wenn Sie einen Stream innerhalb einer CloudFormation Vorlage aktivieren und auch eine Richtlinie für den Stream definieren, wird die Richtlinie erst an den Stream angehängt, nachdem der Stream aktiviert wurde, aber bevor die Stack-Aktualisierung abgeschlossen ist.

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