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