Beispiele für ressourcenbasierte DynamoDB-Richtlinien
Wenn Sie im Feld Resource 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 kursiv formatierten Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.
Ressourcenbasierte Richtlinie für eine Tabelle
Die folgende ressourcenbasierte Richtlinie, die an eine DynamoDB-Tabelle namens MusicCollection angehängt ist, erteilt den IAM-Benutzern John und Jane die Berechtigung, die Aktionen GetItem und BatchGetItem für die MusicCollection auszuführen.
Ressourcenbasierte Richtlinie für einen Stream
Die folgende ressourcenbasierte Richtlinie, die an einen DynamoDB-Stream namens 2024-02-12T18:57:26.492 angehängt ist, erteilt den IAM-Benutzern John und Jane die Berechtigung, die API-Aktionen GetRecords, GetShardIterator und DescribeStream für die Ressource 2024-02-12T18:57:26.492 auszuführen.
Ressourcenbasierte Richtlinie für den Zugriff zur Ausführung aller Aktionen für bestimmte Ressourcen
Damit ein Benutzer alle Aktionen für eine Tabelle und alle 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 erteilt dem Benutzer John beispielsweise die Berechtigung, alle Aktionen für die Tabelle MusicCollection und allen zugehörigen Indizes auszuführen, einschließlich aller Indizes, die in Zukunft erstellt werden.
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 Lesezugriff 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 dem Benutzer John von einer vertrauenswürdigen AWS-Konto-ID 111111111111, auf Daten aus einer Tabelle im Konto 123456789012 mithilfe der GetItem-API zuzugreifen. Die Richtlinie stellt sicher, dass der Benutzer nur auf Elemente mit dem Primärschlüssel Jane zugreifen kann und dass der Benutzer nur die Attribute Artist und SongTitle, aber keine anderen Attribute abrufen kann.
Wichtig
Wenn Sie die SPECIFIC_ATTRIBUTES-Bedingung nicht angeben, werden Ihnen alle Attribute für die zurückgegebenen Elemente angezeigt.
Zusätzlich zur vorherigen ressourcenbasierten Richtlinie muss die identitätsbasierte Richtlinie, die dem Benutzer John zugewiesen ist, auch zulassen, dass die GetItem-API-Aktion für den kontoübergreifenden Zugriff funktioniert. Nachstehend finden Sie ein Beispiel für eine identitätsbasierte Richtlinie, die Sie dem Benutzer John anhängen müssen.
Der Benutzer John kann eine GetItem-Anforderung stellen, indem er den Tabellen-ARN im Parameter table-name für den Zugriff auf die Tabelle MusicCollection im Konto 123456789012 angibt.
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 Bedingungen für die IP-Adresse
Sie können eine Bedingung anwenden, um Quell-IP-Adressen, Virtual Private Clouds (VPCs) und VPC-Endpunkte (VPCE) einzuschränken. Sie können Berechtigungen auf der Grundlage der Quelladressen der ursprünglichen Anforderung angeben. Angenommen, Sie möchten einem Benutzer nur dann Zugriff auf DynamoDB-Ressourcen gewähren, wenn von einer bestimmten IP-Quelle aus darauf 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 John den Zugriff auf jede DynamoDB-Ressource, wenn die Quell-IPs 54.240.143.0/24 und 2001:DB8:1234:5678::/64 lauten.
Sie können auch jeglichen Zugriff auf DynamoDB-Ressourcen verweigern, es sei denn, die Quelle ist ein bestimmter VPC-Endpunkt, z. B. vpce-1a2b3c4d.
Ressourcenbasierte Richtlinie mit einer IAM-Rolle
Sie können auch eine IAM-Servicerolle in der ressourcenbasierten Richtlinie angeben. IAM-Entitäten, die diese Rolle übernehmen, sind an die für die Rolle angegebenen zulässigen Aktionen und an die spezifische Gruppe von Ressourcen innerhalb der ressourcenbasierten Richtlinie gebunden.
Im folgenden Beispiel kann eine IAM-Entität alle DynamoDB-Aktionen für die DynamoDB-Ressourcen MusicCollection und MusicCollection ausführen.