Zugriffsverwaltung für S3 Tables - Amazon Simple Storage Service

Zugriffsverwaltung für S3 Tables

In S3 Tables enthalten Ressourcen Tabellen-Buckets und die darin enthaltenen Tabellen. Der Root-Benutzer des AWS-Konto, das die Ressource erstellt hat (Ressourcenbesitzer), und die AWS Identity and Access Management(IAM)-Benutzer innerhalb dieses Kontos, die über die erforderlichen Berechtigungen verfügen, können auf eine von ihnen erstellte Ressource zugreifen. Der Ressourceneigentümer legt fest, wer sonst noch auf die Ressource zugreifen kann und welche Aktionen diese Personen an der Ressource ausführen dürfen. Amazon S3 verfügt über verschiedene Tools zur Zugriffsverwaltung, mit denen Sie anderen Zugriff auf Ihre S3-Ressourcen gewähren können. Wenn Sie Ihre Tabellen in AWS Amazon SageMaker Lakehouse integriert haben, können Sie mit Lake Formation auch den detaillierten Zugriff auf Ihre Tabellen und Namespaces verwalten. Die folgenden Themen bieten Ihnen einen Überblick über Ressourcen, IAM-Aktionen und Bedingungsschlüssel für S3 Tables. Sie enthalten außerdem Beispiele für ressourcenbasierte und identitätsbasierte Richtlinien für S3 Tables.

Ressourcen

Ressourcen von S3 Tables enthalten Tabellen-Buckets und die darin enthaltenen Tabellen.

  • Tabellen-Buckets: Tabellen-Buckets wurden speziell für Tabellen entwickelt und bieten eine höhere TPS-Rate (Transaktionen pro Sekunde) und einen besseren Abfragedurchsatz als selbstverwaltete Tabellen in Allzweck-S3-Buckets. Tabellen-Buckets bieten dieselbe Beständigkeit, Verfügbarkeit, Skalierbarkeit und dieselben Leistungsmerkmale wie Allzweck-Buckets von Amazon S3.

  • Tabellen: Tabellen in Ihren Tabellen-Buckets werden im Format Apache Iceberg gespeichert. Sie können diese Tabellen mit Standard-SQL in Abfrage-Engines abfragen, die Iceberg unterstützen.

Amazon-Ressourcennamen (ARNs) für Tabellen und Tabellen-Buckets enthalten den Namespace s3tables, die AWS-Region, die AWS-Konto-ID und den Bucket-Namen. Um auf Ihre Tabellen und Tabellen-Bucket zuzugreifen und Aktionen an ihnen auszuführen, müssen Sie die folgenden ARN-Formate verwenden:

  • Tabellen-ARN-Format:

    arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-bucket/table/demo-tableID

Aktionen für S3 Tables

In einer identitäts- oder ressourcenbasierten Richtlinie legen Sie fest, welche S3-Tables-Aktionen für spezifische IAM-Prinzipale zugelassen sind oder abgelehnt werden. Tables-Aktionen entsprechen API-Operationen auf Bucket- und Tabellenebene. Alle Aktionen sind Teil eines eindeutigen IAM-Namespace: s3tables.

Wenn Sie eine Aktion in einer Richtlinie verwenden, gestatten oder verweigern Sie in der Regel den Zugriff auf den API-Vorgang mit demselben Namen. Dabei kann es mitunter vorkommen, dass eine einzige Aktion den Zugriff auf mehr als eine API-Operation steuert. Aktionen des Typs s3tables:GetTableData umfassen beispielsweise Berechtigungen für die API-Operationen GetObject, ListParts und ListMultiparts.

Folgende Aktionen werden für Tabellen-Buckets unterstützt. Sie können die folgenden Aktionen im Element Action der Richtlinie einer IAM-Richtlinie oder Ressourcenrichtlinie festlegen.

Action Beschreibung Zugriffsebene Kontoübergreifender Zugriff
s3tables:CreateTableBucket Erteilt Berechtigungen zum Erstellen eines Tabellen-Buckets Write Nein
s3tables:GetTableBucket Erteilt die Berechtigung zum Aufrufen des ARNs eines Tabellen-Buckets, des Namens eines Tabellen-Buckets und seines Erstellungsdatums Write Ja
s3tables:ListTableBuckets Erteilt die Berechtigung zum Auflisten aller Tabellen-Buckets in diesem Konto Read Nein
s3tables:CreateNamespace Erteilt die Berechtigung zum Erstellen eines Namespace in einem Tabellen-Bucket Write Ja
s3tables:GetNamespace Erteilt die Berechtigung zum Abrufen von Namespace-Details Read Ja
s3tables:ListNamespaces Erteilt die Berechtigung zum Auflisten aller Namespaces im Tabellen-Bucket Read Ja
s3tables:DeleteNamespace Erteilt die Berechtigung zum Löschen eines Namespace in einem Tabellen-Bucket Write Ja
s3tables:DeleteTableBucket Erteilt die Berechtigung zum Löschen des Buckets Write Ja
s3tables:PutTableBucketPolicy Erteilt die Berechtigung zum Hinzufügen oder Ersetzen einer Bucket-Richtlinie Permissions Management Nein
s3tables:GetTableBucketPolicy Erteilt die Berechtigung zum Abrufen der Bucket-Richtlinie Read Nein
s3tables:DeleteTableBucketPolicy Erteilt die Berechtigung zum Löschen der Bucket-Richtlinie Permissions Management Nein
s3tables:GetTableBucketMaintenanceConfiguration Erteilt die Berechtigung zum Abrufen der Wartungskonfiguration für einen Tabellen-Bucket Read Ja
s3tables:PutTableBucketMaintenanceConfiguration Erteilt die Berechtigung zum Hinzufügen oder Ersetzen der Wartungskonfiguration für einen Tabellen-Bucket Write Ja
s3tables:PutTableBucketEncryption Erteilt die Berechtigung, die Verschlüsselungskonfiguration für einen Tabellen-Bucket hinzuzufügen oder zu ersetzen Write Nein
s3tables:GetTableBucketEncryption Erteilt die Berechtigung zum Abrufen der Verschlüsselungskonfiguration für einen Tabellen-Bucket Read Nein
s3tables:DeleteTableBucketEncryption Erteilt die Berechtigung zum Löschen der Verschlüsselungskonfiguration für einen Tabellen-Bucket Write Nein

Folgende Aktionen werden für Tabellen unterstützt:

Action Beschreibung Zugriffsebene Kontoübergreifender Zugriff
s3tables:GetTableMaintenanceConfiguration Erteilt die Berechtigung zum Empfangen der Wartungskonfiguration für eine Tabelle Read Ja
s3tables:PutTableMaintenanceConfiguration Erteilt die Berechtigung zum Hinzufügen oder Ersetzen der Wartungskonfiguration für eine Tabelle Write Ja
s3tables:PutTablePolicy Erteilt die Berechtigung zum Hinzufügen oder Ersetzen einer Tabellenrichtlinie Permissions Management Nein
s3tables:GetTablePolicy Erteilt die Berechtigung zum Abrufen der Tabellenrichtlinie Read Nein
s3tables:DeleteTablePolicy Erteilt die Berechtigung zum Löschen der Tabellenrichtlinie Permissions management Nein
s3tables:CreateTable Erteilt die Berechtigung zum Erstellen einer Tabelle in einem Tabellen-Bucket Write Ja
s3tables:GetTable Erteilt die Berechtigung zum Abrufen einer Tabelleninformation Read Ja
s3tables:GetTableMetadataLocation Erteilt die Berechtigung zum Abrufen des Tabellen-Root-Pointers (Metadatendatei) Read Ja
s3tables:ListTables Erteilt die Berechtigung zum Auflisten aller Tabellen in einem Tabellen-Bucket Read Ja
s3tables:RenameTable Erteilt Berechtigungen zum Ändern des Namens einer Tabelle Write Ja
s3tables:UpdateTableMetadataLocation Erteilt die Berechtigung zum Aktualisieren des Tabellen-Root-Pointers (Metadatendatei) Write Ja
s3tables:GetTableData Erteilt die Berechtigung zum Lesen der Tabellenmetadaten und Datenobjekte, die im Tabellen-Bucket gespeichert sind Read Ja
s3tables:PutTableData Erteilt die Berechtigung zum Schreiben der Tabellenmetadaten und Datenobjekte, die im Tabellen-Bucket gespeichert sind Write Ja
s3tables:GetTableEncryption Erteilt die Berechtigung zum Abrufen der Verschlüsselungseinstellungen für eine Tabelle Write Nein
s3tables:PutTableEncryption Erteilt die Berechtigung zum Hinzufügen von Verschlüsselung zu einer Tabelle. Write Nein
s3tables:DeleteTable Erteilt die Berechtigung, eine Tabelle aus einem Tabellen-Bucket zu löschen Write Ja

Um Lese- und Schreibaktionen auf Tabellenebene durchzuführen, unterstützt S3 Tables Amazon-S3-API-Operationen wie GetObject und PutObject. Die folgende Tabelle zeigt eine Liste von Aktionen auf Objektebene. Beim Erteilen von Lese- und Schreibberechtigungen für Ihre Tabellen verwenden Sie die folgenden Aktionen.

Action S3-Objekt-APIs
s3tables:GetTableData GetObject, ListParts, HeadObject
s3tables:PutTableData PutObject, CreateMultipartUpload, CompleteMultipartUpload, UploadPart, AbortMultipartUpload

Wenn ein Benutzer beispielsweise über GetTableData-Berechtigungen verfügt, kann er alle mit der Tabelle verknüpften Dateien lesen, z. B. die Metadatendatei, das Manifest, die Manifest-Listendateien und die Parquet-Datendateien.

Bedingungsschlüssel für S3 Tables

S3 Tables unterstützen globale AWS-Bedingungskontextschlüssel.

Darüber hinaus definiert S3 Tables die folgenden Bedingungsschlüssel, die Sie in einer Zugriffsrichtlinie verwenden können.

Bedingungsschlüssel Beschreibung Typ
s3tables:tableName Filtert den Zugriff nach dem Namen der Tabellen im Tabellen-Bucket.

Sie können den Bedingungsschlüssel s3tables:tableName verwenden, um IAM- oder Tabellen-Bucket-Richtlinien zu schreiben, die den Benutzer- oder Anwendungszugriff auf die Tabellen beschränken, die diese Namensbedingung erfüllen.

Es ist wichtig zu beachten, dass sich Änderungen am Tabellennamen auf diese Richtlinien auswirken können, wenn Sie den Bedingungsschlüssel s3tables:tableName zur Zugriffskontrolle verwenden.

Beispielwert: "s3tables:tableName":"department*"
String
s3tables:namespace

Filtert den Zugriff nach den Namespaces, die im Tabellen-Bucket erstellt wurden.

Sie können den Bedingungsschlüssel s3tables:namespace verwenden, um IAM-, Tabellen- oder Tabellen-Bucket-Richtlinien zu schreiben, die den Benutzer- oder Anwendungszugriff auf Tabellen einschränken, die Teil eines bestimmten Namespace sind. Beispielwert: "s3tables:namespace":"hr"

Es ist wichtig zu beachten, dass sich Änderungen an Namespaces auf diese Richtlinien auswirken können, wenn Sie den Bedingungsschlüssel s3tables:namespace zur Zugriffskontrolle verwenden.

String
s3tables:SSEAlgorithm

Filtert den Zugriff durch den serverseitigen Verschlüsselungsalgorithmus, der zum Verschlüsseln einer Tabelle verwendet wird.

Sie können den s3tables:SSEAlgorithm-Bedingungsschlüssel verwenden, um IAM-, Tabellen- oder Tabellen-Bucket-Richtlinien zu erstellen, die den Zugriff von Benutzern oder Anwendungen auf Tabellen einschränken, die mit einem bestimmten Verschlüsselungstyp verschlüsselt sind. Beispielwert: "s3tables:SSEAlgorithm":"aws:kms"

Bitte beachten Sie, dass bei Verwendung des s3tables:SSEAlgorithm-Bedingungsschlüssels zur Zugriffskontrolle Änderungen an der Verschlüsselung Auswirkungen auf diese Richtlinien haben können.

String
s3tables:KMSKeyArn

Filtert den Zugriff anhand der ARN des AWS KMS-Schlüssels, der zur Verschlüsselung einer Tabelle verwendet wird.

Sie können den s3tables:KMSKeyArn-Bedingungsschlüssel verwenden, um IAM-, Tabellen- oder Tabellen-Bucket-Richtlinien zu erstellen, die den Zugriff von Benutzern oder Anwendungen auf Tabellen einschränken, die mit einem bestimmten KMS-Schlüssel verschlüsselt sind.

Bitte beachten Sie, dass die Änderung Ihres KMS-Schlüssels Auswirkungen auf diese Richtlinien haben kann, wenn Sie den s3tables:KMSKeyArn-Bedingungsschlüssel zur Zugriffskontrolle verwenden.

ARN