Beispiele für ressourcenbasierte DynamoDB-Richtlinien - Amazon-DynamoDB

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.

Beispiele für ressourcenbasierte DynamoDB-Richtlinien

Wenn Sie im Resource Feld einer ressourcenbasierten Richtlinie einen ARN angeben, wird die Richtlinie nur wirksam, wenn der angegebene ARN mit dem ARN der DynamoDB-Ressource übereinstimmt, an die er angehängt ist.

Anmerkung

Denken Sie daran, den italicized Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.

Ressourcenbasierte Richtlinie für eine Tabelle

Die folgende ressourcenbasierte Richtlinie, die an eine DynamoDB-Tabelle mit dem Namen angehängt istMusicCollection, erteilt den IAM-Benutzern John die Jane Berechtigung, Aktionen auf der Ressource auszuführen GetItem. BatchGetItemMusicCollection

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::111122223333:user/Jane" ] }, "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ] } ] }

Ressourcenbasierte Richtlinie für einen Stream

Die folgende ressourcenbasierte Richtlinie, die an einen DynamoDB-Stream mit dem Namen angehängt ist, 2024-02-12T18:57:26.492 erteilt den IAM-Benutzern die Jane Berechtigung GetRecords,, GetShardIterator, John und DescribeStreamAPI-Aktionen auf der Ressource durchzuführen. 2024-02-12T18:57:26.492

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::111122223333:user/Jane" ] }, "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492" ] } ] }

Ressourcenbasierte Richtlinie für den Zugriff zur Ausführung aller Aktionen auf bestimmten Ressourcen

Damit ein Benutzer alle Aktionen an einer Tabelle und allen zugehörigen Indizes mit einer Tabelle ausführen kann, können Sie einen Platzhalter (*) verwenden, um die mit der Tabelle verknüpften Aktionen und Ressourcen darzustellen. Die Verwendung eines Platzhalterzeichens für die Ressourcen ermöglicht dem Benutzer den Zugriff auf die DynamoDB-Tabelle und alle zugehörigen Indizes, einschließlich der Indizes, die noch nicht erstellt wurden. Die folgende Richtlinie gibt dem Benutzer beispielsweise die John Erlaubnis, alle Aktionen an der MusicCollection Tabelle und all ihren Indizes durchzuführen, einschließlich aller Indizes, die in future erstellt werden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal":"arn:aws:iam::111122223333:user/John", "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/*" ] } ] }

Ressourcenbasierte Richtlinie für kontoübergreifenden Zugriff

Sie können Berechtigungen für eine kontoübergreifende IAM-Identität für den Zugriff auf DynamoDB-Ressourcen angeben. Beispielsweise benötigen Sie möglicherweise einen Benutzer mit einem vertrauenswürdigen Konto, um Zugriff auf den Inhalt Ihrer Tabelle zu erhalten, unter der Bedingung, dass er nur auf bestimmte Elemente und bestimmte Attribute in diesen Elementen zugreift. Die folgende Richtlinie ermöglicht Benutzern John mit einer vertrauenswürdigen AWS-Konto ID 111111111111 den Zugriff auf Daten aus einer Tabelle im Konto 123456789012 mithilfe der GetItemAPI. Die Richtlinie stellt sicher, dass der Benutzer nur auf Elemente mit einem Primärschlüssel zugreifen kann Jane und dass der Benutzer nur die Attribute Artist undSongTitle, aber keine anderen Attribute abrufen kann.

Wichtig

Wenn Sie die SPECIFIC_ATTRIBUTES Bedingung nicht angeben, werden Ihnen alle Attribute für die zurückgegebenen Artikel angezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountTablePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/John" }, "Action": "dynamodb:GetItem", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": "Jane", "dynamodb:Attributes": [ "Artist", "SongTitle" ] }, "StringEquals": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" } } } ] }

Zusätzlich zur vorherigen ressourcenbasierten Richtlinie muss die dem Benutzer zugeordnete identitätsbasierte Richtlinie John auch die GetItem API-Aktion für den kontoübergreifenden Zugriff ermöglichen. Im Folgenden finden Sie ein Beispiel für eine identitätsbasierte Richtlinie, die Sie dem Benutzer zuordnen müssen. John

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountIdentityBasedPolicy", "Effect": "Allow", "Action": [ "dynamodb:GetItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": "Jane", "dynamodb:Attributes": [ "Artist", "SongTitle" ] }, "StringEquals": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" } } } ] }

Der Benutzer John kann eine GetItem Anfrage stellen, indem er den Tabellen-ARN im table-name Parameter für den Zugriff auf die Tabelle MusicCollection im Konto angibt123456789012.

aws dynamodb get-item \ --table-name arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \ --key '{"Artist": {"S": "Jane"}' \ --projection-expression 'Artist, SongTitle' \ --return-consumed-capacity TOTAL

Ressourcenbasierte Richtlinie mit IP-Adressbedingungen

Sie können eine Bedingung anwenden, um Quell-IP-Adressen, virtuelle private Clouds (VPCs) und VPC-Endpunkte (VPCE) einzuschränken. Sie können Berechtigungen auf der Grundlage der Quelladressen der ursprünglichen Anfrage angeben. Beispielsweise möchten Sie einem Benutzer möglicherweise nur dann Zugriff auf DynamoDB-Ressourcen gewähren, wenn auf sie von einer bestimmten IP-Quelle aus zugegriffen wird, z. B. von einem Unternehmens-VPN-Endpunkt. Geben Sie diese IP-Adressen in der Condition Anweisung an.

Das folgende Beispiel ermöglicht dem Benutzer den John Zugriff auf jede DynamoDB-Ressource, wenn die Quelle IPs und ist. 54.240.143.0/24 2001:DB8:1234:5678::/64

{ "Id":"PolicyId2", "Version":"2012-10-17", "Statement":[ { "Sid":"AllowIPmix", "Effect":"Allow", "Principal":"arn:aws:iam::111111111111:user/John", "Action":"dynamodb:*", "Resource":"*", "Condition": { "IpAddress": { "aws:SourceIp": [ "54.240.143.0/24", "2001:DB8:1234:5678::/64" ] } } } ] }

Sie können auch jeglichen Zugriff auf DynamoDB-Ressourcen verweigern, es sei denn, die Quelle ist beispielsweise ein bestimmter VPC-Endpunkt. vpce-1a2b3c4d

{ "Id":"PolicyId", "Version":"2012-10-17", "Statement": [ { "Sid": "AccessToSpecificVPCEOnly", "Principal": "*", "Action": "dynamodb:*", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals":{ "aws:sourceVpce":"vpce-1a2b3c4d" } } } ] }

Ressourcenbasierte Richtlinie unter Verwendung einer IAM-Rolle

Sie können in der ressourcenbasierten Richtlinie auch eine IAM-Dienstrolle angeben. IAM-Entitäten, die diese Rolle übernehmen, sind an die für die Rolle angegebenen zulässigen Aktionen und an die spezifischen Ressourcen innerhalb der ressourcenbasierten Richtlinie gebunden.

Im folgenden Beispiel kann eine IAM-Entität alle DynamoDB-Aktionen für die MusicCollection und MusicCollection DynamoDB-Ressourcen ausführen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/John" }, "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/*" ] } ] }