Zugriff auf Datenbanken und Tabellen in AWS Glue Data Catalog konfigurieren
Wenn Sie AWS Glue Data Catalog mit Amazon Athena verwenden, können Sie Richtlinien auf Ressourcenebene für die Datenkatalog-Objekte Datenbank und Tabelle definieren, die in Athena verwendet werden.
Anmerkung
Dieses Thema behandelt die Sicherheit auf Datenbank- und Tabellenebene. Hinweise zum Konfigurieren der Sicherheit auf Spalten-, Zeilen- und Zellen-Ebene finden Sie unter 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 Sie eine IAM-Richtlinie, die Zugriff auf Ressourcen definiert | Erstellen von IAM-Richtlinien im IAM-Benutzerhandbuch. |
| Informationen zu den in verwendeten identitätsbasierten Richtlinien (IAM-Richtlinien) AWS Glue | Identitätsbasierte Richtlinien (IAM-Richtlinien) im AWS Glue-Entwicklerhandbuch. |
In diesem Abschnitt
Einschränkungen
Berücksichtigen Sie die folgenden Einschränkungen, wenn Sie die Zugriffskontrolle auf Datenbank- und Tabellenebene für Athena AWS Glue Data Catalog verwenden:
-
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. Diese Kontrollen gelten auf Tabellenebene. Sie können den Zugriff nicht auf einzelne Partitionen innerhalb einer Tabelle beschränken. Weitere Informationen finden Sie unter Informationen zur Zugriffskontrolle für Tabellenpartitionen und -Versionen in AWS Glue.
-
AWS Glue Data Catalog enthält folgende Ressourcen:
CATALOG,DATABASE,TABLEundFUNCTION.Anmerkung
Ressourcen in dieser Liste, die zwischen Athena und AWS Glue Data Catalog gleich sind, sind für jedes Konto
TABLE,DATABASEundCATALOG.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 Berechtigungen auf Datenbank- und Tabellenebene.Die Hierarchie lautet wie folgt:
CATALOGist ein Vorgänger von allenDATABASESin jedem Konto und jedeDATABASEist ein Vorgänger für alle ihreTABLESundFUNCTIONS. Beispiel: Für eine Tabelle mit dem Namentable_testeiner Datenbankdbim Katalog in Ihrem Konto sind ihre Vorgängerdbund der Katalog in Ihrem Konto. Für diedb-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 TABLEoderALTER 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 Berechtigungen auf Datenbank- und Tabellenebene. -
Für eine Löschaktion in Athena, wie z. B.
DROP DATABASEoderDROP 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 vonDROP TABLEmü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 Berechtigungen auf Datenbank- und Tabellenebene.
AWS Glue-Zugriff auf Ihren Katalog und Ihre Datenbank per AWS-Region konfigurieren
Damit Athena mit dem AWS Glue arbeiten kann, ist eine AWS-Region-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 die AWS-Region, 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" ] }
Informationen zur Zugriffskontrolle für Tabellenpartitionen und -Versionen in AWS Glue
Tabellen können in AWS Glue 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 Zugriffskontrolle gelten die folgenden Zugriffsberechtigungen:
-
Kontrollen 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 in 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.
GetPartitionsauf TabellemyTablein der DatenbankmyDBauszuführen, müssen Sieglue:GetPartitionsdie Berechtigungen für den Katalog, diemyDB-Datenbank und diemyTable-Ressourcen erteilen. -
Zugriffskontrollen gelten nicht für Tabellenversionen. Wie bei Partitionen wird der Zugriff auf frühere Versionen einer Tabelle durch den Zugriff auf die Tabellenversions-APIs in AWS Glue in der Tabelle und für die Tabellenvorfahren gewährt.
Weitere Informationen zu Berechtigungen für AWS Glue-Aktionen finden Sie unter AWS Glue-API-Berechtigungen: Referenz für Aktionen und Ressourcen im AWS Glue Entwicklerhandbuch.
Beispiele für Berechtigungen auf Datenbank- und Tabellenebene
In der folgenden Tabelle sind Beispiele für identitätsbasierte IAM-Richtlinien aufgeführt, die einen 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 AWS Glue zusammenarbeiten können. Nehmen Sie bei mehreren AWS-Regionen diese Richtlinie für jede Ihrer Datenbanken und ihrer Kataloge in einer Zeile für jede Region auf.
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.
|
| CREATE DATABASE | Hiermit können Sie die Datenbank mit dem Namen erstellen example_db.
|
| CREATE TABLE | Hiermit können Sie eine Tabelle mit dem Namen test in der example_db-Datenbank erstellen.
|
| DROP DATABASE | Hiermit können Sie die example_db-Datenbank mit allen darin enthaltenen Tabellen löschen.
|
| 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.
|
| 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.
|
| SHOW DATABASES | Hiermit können Sie alle Datenbanken in auflisten AWS Glue Data Catalog.
|
| SHOW TABLES | Hiermit können Sie alle Tabellen in der example_db-Datenbank auflisten.
|