Ressourcenbasierte Richtlinien für S3 Tables - Amazon Simple Storage Service

Ressourcenbasierte Richtlinien für S3 Tables

S3 Tables bietet ressourcenbasierte Richtlinien für die Verwaltung des Zugriffs auf Tabellen-Buckets und Tabellen: Tabellen-Bucket-Richtlinien und Tabellenrichtlinien. Sie können eine Tabellen-Bucket-Richtlinie verwenden, um API-Zugriffsberechtigungen auf Tabellen-Bucket-, Namespace- oder Tabellenebene zu erteilen. Die mit dem Tabellen-Bucket verknüpften Berechtigungen können je nach Richtliniendefinition für alle Tabellen im Bucket oder für bestimmte Tabellen im Bucket gelten. Sie können eine Tabellenrichtlinie verwenden, um Berechtigungen auf Tabellenebene zu erteilen.

Wenn S3 Tables eine Anforderung erhält, überprüft es zuerst, ob der Anforderer die erforderlichen Berechtigungen besitzt. Es wertet alle relevanten Zugriffsrichtlinien, Benutzerrichtlinien und ressourcenbasierten Richtlinien aus, um entscheiden zu können, ob die Anforderung autorisiert werden soll (IAM-Benutzerrichtlinie, IAM-Rollenrichtlinie, Table-Bucket-Richtlinie und Tabellenrichtlinie). Wenn beispielsweise eine Tabellen-Bucket-Richtlinie einem Benutzer Berechtigungen zur Ausführung aller Aktionen an den Tabellen im Bucket (einschließlich DeleteTable) erteilt, für eine einzelne Tabelle jedoch eine Tabellenrichtlinie gilt, die die Aktion DeleteTable für alle Benutzer verweigert, kann der Benutzer die Tabelle nicht löschen.

Das folgende Thema enthält Beispiele für Tabellen- und Tabellen-Bucket-Richtlinien. Wenn Sie diese Richtlinien verwenden möchten, ersetzen Sie die Platzhalter für Benutzereingaben durch Ihre Informationen.

Anmerkung
  • Jede Richtlinie, die Berechtigungen zum Ändern von Tabellen erteilt, sollte für GetTableMetadataLocation Zugriffsberechtigungen für die Root-Datei der Tabelle enthalten. Weitere Informationen finden Sie unter GetTableMetadataLocation.

  • Jedes Mal, wenn Sie eine Schreib- oder Löschaktivität für Ihre Tabelle ausführen, sollten Sie die entsprechenden Berechtigungen für UpdateTableMetadataLocation in Ihre Zugriffsrichtlinie einschließen.

  • Wir empfehlen die Verwendung einer Tabellen-Bucket-Richtlinie zur Steuerung des Zugriffs auf Aktionen auf Bucket-Ebene und einer Tabellenrichtlinie zur Steuerung des Zugriffs auf Aktionen auf Tabellenebene. Falls Sie dieselben Berechtigungen für mehrere Tabellen definieren möchten, empfehlen wir die Verwendung einer Tabellen-Bucket-Richtlinie.

Beispiel 1: Die Tabellen-Bucket-Richtlinie erteilt Buckets in einem Konto den Zugriff auf PutBucketMaintenanceConfiguration.

Das folgende Beispiel für eine Tabellen-Bucket-Richtlinie ermöglicht es der IAM-Rolle data steward, nicht referenzierte Objekte für alle Buckets in einem Konto zu löschen, indem sie Zugriff auf PutBucketMaintenanceConfiguration erhält.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/datasteward" }, "Action": [ "s3tables:PutTableBucketMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/*" } ] }

Beispiel 2: Table-Bucket-Richtlinie, die Lesezugriff (AUSWÄHLEN) auf Tabellen im hrNamespace ermöglicht

Die folgende Beispiel-Tabellen-Bucket-Richtlinie ermöglicht Jane, einer Benutzerin mit der AWS-Konto-ID 123456789012, den Zugriff auf Tabellen, die im hr-Namespace in einem Tabellen-Bucket gespeichert sind.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": [ "s3tables:GetTableData", "s3tables:GetTableMetadataLocation" ], "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/*", "Condition": { "StringLike": { "s3tables:namespace": "hr" } } } ] }

Beispiel 3: Eine Tabellenrichtlinie, die es Benutzern ermöglicht, eine Tabelle zu löschen.

Das folgende Beispiel für eine Tabellenrichtlinie erteilt der IAM-Rolle data steward die Berechtigung, eine Tabelle zu löschen.

JSON
{ "Version":"2012-10-17", "Id": "DeleteTable", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/datasteward" }, "Action": [ "s3tables:DeleteTable", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableData", "s3tables:GetTableMetadataLocation" ], "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket/table/tableUUID" } ] }