Detaillierter Zugriff auf Datenbanken und Tabellen in der AWS Glue Data Catalog - Amazon Athena

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.

Detaillierter Zugriff auf Datenbanken und Tabellen in der AWS Glue Data Catalog

Wenn Sie das AWS Glue Data Catalog mit Amazon Athena verwenden, können Sie Richtlinien auf Ressourcenebene für die Datenbank- und Tabellendatenkatalogobjekte definieren, die in Athena verwendet werden.

Anmerkung

Der Begriff „feinkörnige Zugriffskontrolle“ bezieht sich hier auf die Sicherheit auf Datenbank- und Tabellenebene. Hinweise zur Sicherheit auf Spalten-, Zeilen- und Zellen-Ebene finden Sie unter Data filtering and cell-level security in Lake Formation (Daten-Filterung und Sicherheit auf Zellen-Ebene in Lake Formation).

Berechtigungen auf Ressourcenebene werden in identitätsbasierten IAM-Richtlinien definiert.

Wichtig

In diesem Abschnitt werden Berechtigungen auf Ressourcenebene in identitätsbasierten IAM-Richtlinien besprochen. Diese unterscheiden sich von ressourcenbasierten Richtlinien. Weitere Informationen zu den Unterschieden finden Sie unter Identitätsbasierte Richtlinien und ressourcenbasierte Richtlinien im IAM-Benutzerhandbuch.

Beachten Sie für diese Aufgaben folgende Themen:

Zur Ausführung dieser Aufgabe Beachten Sie folgendes Thema
Erstellen einer IAM-Richtlinie, die differenzierten Zugriff auf Ressourcen definiert Erstellen von IAM-Richtlinien im IAM-Benutzerhandbuch.
Erfahren Sie mehr über identitätsbasierte IAM-Richtlinien, die in verwendet werden AWS Glue Identitätsbasierte Richtlinien (IAM-Richtlinien) im AWS Glue -Entwicklerhandbuch.

In diesem Abschnitt

Einschränkungen

Berücksichtigen Sie die folgenden Einschränkungen bei Verwendung der differenzierten Zugriffskontrolle mit AWS Glue Data Catalog und Athena:

  • Für IAM Identity Center aktivierte Athena-Arbeitsgruppen muss Lake Formation für die Verwendung von IAM-Identity-Center-Identitäten konfiguriert sein. Weitere Informationen finden Sie unter Integration von IAM Identity Center im AWS Lake Formation -Entwicklerhandbuch.

  • Sie können den Zugriff nur auf Datenbanken und Tabellen beschränken. Differenzierte Zugriffskontrollen werden auf Tabellenebene angewendet und Sie können den Zugriff auf einzelne Partitionen in einer Tabelle nicht einschränken. Weitere Informationen finden Sie unter Tabellenpartitionen und Versionen in AWS Glue.

  • Das AWS Glue Data Catalog enthält die folgenden Ressourcen:CATALOG,DATABASE, TABLE und. FUNCTION

    Anmerkung

    Aus dieser Liste gehen die Ressourcen hervor, die Athena und die gemeinsam AWS Glue Data Catalog haben TABLEDATABASE, und CATALOG für jedes Konto. Functionist spezifisch für. AWS Glue Zum Löschen von Aktionen in Athena müssen Sie Berechtigungen für AWS Glue -Aktionen einschließen. Siehe Beispiele für differenzierte Berechtigungen für Tabellen und Datenbanken.

    Die Hierarchie lautet wie folgt: CATALOG ist ein Vorgänger von allen DATABASES in jedem Konto und jede DATABASE ist ein Vorgänger für alle ihre TABLES und FUNCTIONS. Beispiel: Für eine Tabelle mit dem Namen table_test einer Datenbank db im Katalog in Ihrem Konto sind ihre Vorgänger db und der Katalog in Ihrem Konto. Für die db-Datenbank ist ihr Vorgänger der Katalog in Ihrem Konto und ihre untergeordneten Elemente sind Tabellen und Funktionen. Weitere Informationen über die hierarchische Struktur von Ressourcen finden Sie unter Liste der ARNs im Datenkatalog im AWS Glue Entwicklerhandbuch.

  • Für jede Nicht-Löschaktion in Athena auf einer Ressource, z. B. CREATE DATABASE, CREATE TABLE, SHOW DATABASE, SHOW TABLE oder ALTER TABLE, benötigen Sie Berechtigungen zum Aufrufen dieser Aktion auf dieser Ressource (Tabelle oder Datenbank) und alle Vorgänger dieser Ressource in Datenkatalog. Beispielsweise sind die Vorgänger einer Tabelle die Datenbank, zu der sie gehört, und der Katalog für das Konto. Für eine Datenbank ist ihr Vorgänger der Katalog für das Konto. Siehe Beispiele für differenzierte Berechtigungen für Tabellen und Datenbanken.

  • Für eine Löschaktion in Athena, wie z. B. DROP DATABASE oder DROP TABLE, müssen Sie auch Berechtigungen zum Aufrufen der Löschaktion auf allen Vorgängern und untergeordneten Elemente der Ressource im Datenkatalog besitzen. Wenn Sie beispielsweise eine Datenbank löschen, benötigen Sie Berechtigungen für die Datenbank, den Katalog, der ihr untergeordnetes Element ist, sowie alle Tabellen und benutzerdefinierten Funktionen, die untergeordnete Elemente von ihnen sind. Eine Tabelle hat keine untergeordneten Elemente. Zur Ausführung von DROP TABLE müssen Sie Berechtigungen für diese Aktion auf der Tabelle der Datenbank, zu dem sie gehört, und den Katalog haben. Siehe Beispiele für differenzierte Berechtigungen für Tabellen und Datenbanken.

AWS Glue Zugriff auf Ihren Katalog und Ihre Datenbank per AWS-Region

Damit Athena mit dem arbeiten kann AWS Glue, AWS-Region ist eine Richtlinie erforderlich, die Zugriff auf Ihre Datenbank und auf die AWS Glue Data Catalog in Ihrem Konto per gewährt. Um Datenbanken zu erstellen, ist ebenfalls eine CreateDatabase-Genehmigung erforderlich. Ersetzen Sie in der folgenden Beispielrichtlinie AWS-Region die AWS-Konto ID und den Datenbanknamen durch Ihre eigenen.

{ "Sid": "DatabasePermissions", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/default" ] }

Tabellenpartitionen und Versionen in AWS Glue

In AWS Glue können Tabellen Partitionen und Versionen haben. Tabellenversionen und Partitionen gelten nicht als unabhängige Ressourcen in AWS Glue. Zugriff auf die Tabellenversionen und -partitionen wird durch Erteilen des Zugriffs auf die Tabelle und Vorgängerressourcen für die Tabelle gewährt.

Für die Zwecke der differenzierten Zugriffskontrolle gelten die folgenden Zugriffsberechtigungen:

  • Differenzierte Zugriffskontrollen gelten auf Tabellenebene. Sie können den Zugriff nur auf Datenbanken und Tabellen beschränken. Wenn Sie zum Beispiel den Zugriff auf eine partitionierte Tabelle gewähren, gilt dies für alle Partitionen in der Tabelle. Sie können den Zugriff nicht auf einzelne Partitionen innerhalb einer Tabelle beschränken.

    Wichtig

    Um Aktionen AWS Glue auf Partitionen auszuführen, sind Berechtigungen für Partitionsaktionen auf Katalog-, Datenbank- und Tabellenebene erforderlich. Der Zugriff auf Partitionen innerhalb einer Tabelle ist nicht ausreichend. Um z. B. GetPartitions auf Tabelle myTable in der Datenbank myDB auszuführen, müssen Sie glue:GetPartitions die Berechtigungen für den Katalog, die myDB-Datenbank und die myTable-Ressourcen erteilen.

  • Differenzierte Zugriffskontrollen gelten nicht für Tabellenversionen. Wie bei Partitionen wird der Zugriff auf frühere Versionen einer Tabelle über den Zugriff auf die Tabellenversions-APIs in der Tabelle und AWS Glue auf die übergeordneten Tabellenversionen gewährt.

Informationen zu Berechtigungen für AWS Glue Aktionen finden Sie unter AWS Glue API-Berechtigungen: Referenz zu Aktionen und Ressourcen im AWS Glue Entwicklerhandbuch.

Beispiele für differenzierte Berechtigungen für Tabellen und Datenbanken

In der folgenden Tabelle sind Beispiele für identitätsbasierte IAM-Richtlinien aufgeführt, die einen differenzierten Zugriff auf Datenbanken und Tabellen in Athena ermöglichen. Wir empfehlen Ihnen, mit diesen Beispielen zu beginnen und diese Ihren Anforderungen entsprechend anzupassen, um bestimmte Aktionen für einzelne Datenbanken und Tabellen zuzulassen oder zu verweigern.

Zu diesen Beispielen gehört der Zugriff auf Datenbanken und Kataloge, sodass Athena und ich zusammenarbeiten AWS Glue können. Fügen Sie für mehrere AWS Regionen ähnliche Richtlinien für jede Ihrer Datenbanken und Kataloge hinzu, jeweils eine Zeile für jede Region.

Ersetzen Sie in den Beispielen außerdem die Namen der example_db-Datenbank und test-Tabelle durch die Namen Ihrer Datenbanken und Tabellen.

DDL-Anweisung Beispiel für eine IAM-Zugriffsrichtlinie, die Zugriff auf die Ressource erteilt
ALTER DATABASE Hiermit können Sie die Eigenschaften für die example_db-Datenbank ändern.
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:UpdateDatabase" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/example_db" ] }
CREATE DATABASE Hiermit können Sie die Datenbank mit dem Namen example_db erstellen.
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/example_db" ] }
CREATE TABLE Hiermit können Sie eine Tabelle mit dem Namen test in der example_db-Datenbank erstellen.
{ "Sid": "DatabasePermissions", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/example_db" ] }, { "Sid": "TablePermissions", "Effect": "Allow", "Action": [ "glue:GetTables", "glue:GetTable", "glue:GetPartitions", "glue:CreateTable" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/example_db", "arn:aws:glue:us-east-1:123456789012:table/example_db/test" ] }
DROP DATABASE Hiermit können Sie die example_db-Datenbank mit allen darin enthaltenen Tabellen löschen.
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:DeleteDatabase", "glue:GetTables", "glue:GetTable", "glue:DeleteTable" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/example_db", "arn:aws:glue:us-east-1:123456789012:table/example_db/*", "arn:aws:glue:us-east-1:123456789012:userDefinedFunction/example_db/*" ] }
DROP TABLE Hiermit können Sie eine partitionierte Tabelle mit dem Namen test in der example_db-Datenbank löschen. Falls Ihre Tabelle keine Partitionen hat, nehmen Sie keine Aktionen für Partitionen auf.
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetTable", "glue:DeleteTable", "glue:GetPartitions", "glue:GetPartition", "glue:DeletePartition" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/example_db", "arn:aws:glue:us-east-1:123456789012:table/example_db/test" ] }
MSCK REPAIR TABLE Ermöglicht das Aktualisieren von Katalog-Metadaten, nachdem Sie Hive-kompatible Partitionen zur Tabelle mit dem Namen test in die example_db-Datenbank hinzugefügt haben.
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:GetTable", "glue:GetPartitions", "glue:GetPartition", "glue:BatchCreatePartition" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/example_db", "arn:aws:glue:us-east-1:123456789012:table/example_db/test" ] }
SHOW DATABASES Hiermit können Sie alle Datenbanken in AWS Glue Data Catalog auflisten.
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/*" ] }
SHOW TABLES Hiermit können Sie alle Tabellen in der example_db-Datenbank auflisten.
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetTables" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/example_db", "arn:aws:glue:us-east-1:123456789012:table/example_db/*" ] }