Verwenden von Ansichten 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.

Verwenden von Ansichten AWS Glue Data Catalog

Bei diesem Feature handelt es sich um eine Vorabversion, die Änderungen unterliegt. Weitere Informationen dazu finden Sie in den Abschnitten „Betas“ und „Vorschauen“ im Dokument AWS -Servicebedingungen.

Verwenden Sie AWS Glue Data Catalog Ansichten, wenn Sie eine einzige gemeinsame Ansicht für Amazon Athena und Amazon Redshift AWS-Services wünschen. In Data-Catalog-Ansichten werden die Zugriffsberechtigungen durch den Benutzer definiert, der die Ansicht erstellt hat, und nicht durch den Benutzer, der die Ansicht abfragt. Diese Methode zum Gewähren von Berechtigungen wird als Definer-Semantik bezeichnet.

Die folgenden Anwendungsfälle veranschaulichen, wie Sie Data-Catalog-Ansichten verwenden können.

  • Bessere Zugriffskontrolle – Sie erstellen eine Ansicht, die den Datenzugriff basierend auf der vom Benutzer benötigten Berechtigungsebene einschränkt. Mithilfe von Data-Catalog-Ansichten können Sie beispielsweise verhindern, dass Mitarbeiter, die nicht in der Personalabteilung arbeiten, personenbezogene Daten sehen.

  • Vollständige Datensätze sicherstellen – Durch die Anwendung bestimmter Filter auf Ihre Data-Catalog-Ansicht stellen Sie sicher, dass die Datensätze in einer Data-Catalog-Ansicht immer vollständig sind.

  • Verbesserte Sicherheit – In Data-Catalog-Ansichten muss die Abfragedefinition, mit der die Ansicht erstellt wird, intakt sein, damit die Ansicht erstellt werden kann. Dadurch sind Data-Catalog-Ansichten weniger anfällig für SQL-Befehle von böswilligen Akteuren.

  • Zugriff auf zugrunde liegende Tabellen verhindern – Definer-Semantik ermöglicht es Benutzern, auf eine Ansicht zuzugreifen, ohne ihnen die zugrunde liegende Tabelle zur Verfügung zu stellen. Zugriff auf die Tabellen benötigt nur der Benutzer, der die Ansicht definiert.

Definitionen der Data-Catalog-Ansicht werden im AWS Glue Data Catalog gespeichert. Dies bedeutet, dass Sie AWS Lake Formation verwenden können, um den Zugriff durch Ressourcengewährung, Spaltengewährung oder Tag-basierte Zugriffskontrollen zu gewähren. Weitere Informationen zum Gewähren und Widerrufen des Zugriffs in Lake Formation finden Sie unter Gewähren und Widerrufen von Berechtigungen für Data-Catalog-Ressourcen im AWS Lake Formation -Entwicklerhandbuch.

Berechtigungen

Für Data-Catalog-Ansichten sind drei Rollen erforderlich: Lake Formation Admin, Definer und Invoker.

  • Lake Formation Admin – Hat Zugriff auf die Konfiguration aller Lake-Formation-Berechtigungen.

  • Definer – Erstellt die Data-Catalog-Ansicht. Die Definer-Rolle muss über vollständige SELECT-Berechtigungen für alle zugrunde liegenden Tabellen verfügen, auf die die Ansichtsdefinition verweist.

  • Invoker – Kann die Data-Catalog-Ansicht abfragen oder deren Metadaten prüfen. Um den Aufrufer einer Abfrage anzuzeigen, können Sie die invoker_principal() DML-Funktion verwenden. Weitere Informationen finden Sie unter invoker_principal ().

Die Vertrauensbeziehungen der Definer Rolle müssen den Dienstleitern AWS Glue und Lake Formation die sts:AssumeRole Aktion ermöglichen, wie im folgenden Beispiel gezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Für den Athena-Zugriff sind außerdem IAM-Berechtigungen erforderlich. Weitere Informationen finden Sie unter AWS verwaltete Richtlinien für Amazon Athena.

Einschränkungen

  • Data-Catalog-Ansichten können nicht auf andere Ansichten verweisen.

  • Sie können in der Ansichtsdefinition auf bis zu 10 Tabellen verweisen.

  • Zugrundeliegende Tabellen müssen bei Lake Formation registriert sein.

  • Beim DEFINER-Prinzipal kann es sich nur um eine IAM-Rolle handeln.

  • Die DEFINER-Rolle muss über vollständige SELECT-Berechtigungen (gewährbar) für die zugrunde liegenden Tabellen verfügen.

  • UNPROTECTED-Data-Catalog-Ansichten werden nicht unterstützt.

  • Benutzerdefinierte Funktionen (UDFs) werden in der Ansichtsdefinition nicht unterstützt.

  • Verbunddatenquellen von Athena können nicht in Data-Catalog-Ansichten verwendet werden.

  • Data-Catalog-Ansichten werden für externe Hive-Metastores nicht unterstützt.

  • Athena zeigt eine Fehlermeldung an, wenn veraltete Ansichten erkannt werden. Eine veraltete Ansicht wird gemeldet, wenn eines der folgenden Ereignisse auftritt:

    • Die Ansicht verweist auf Tabellen oder Datenbanken, die nicht vorhanden sind.

    • Eine Schema- oder Metadatenänderung wird in einer referenzierten Tabelle vorgenommen.

    • Eine referenzierte Tabelle wird gelöscht und mit einem anderen Schema oder einer anderen Konfiguration neu erstellt.

Erstellen einer Data-Catalog-Ansicht

Die folgende Beispielsyntax veranschaulicht, wie ein Benutzer der Definer-Rolle die Data-Catalog-Ansicht orders_by_date erstellt. Im Beispiel wird davon ausgegangen, dass die Definer-Rolle über vollständige SELECT-Berechtigungen für die orders-Tabelle in der default-Datenbank verfügt.

CREATE PROTECTED MULTI DIALECT VIEW orders_by_date SECURITY DEFINER AS SELECT orderdate, sum(totalprice) AS price FROM orders WHERE order_city = 'SEATTLE' GROUP BY orderdate

Abfrage einer Data-Catalog-Ansicht

Nachdem die Ansicht erstellt wurde, kann der Lake Formation Admin die Berechtigungen SELECT für die Data-Catalog-Ansicht den Invoker-Auftraggebern gewähren. Die Invoker-Prinzipale können dann die Ansicht abfragen, ohne Zugriff auf die zugrunde liegenden Basistabellen zu haben, auf die in der Ansicht verwiesen wird. Im Folgenden finden Sie ein Beispiel für eine Invoker-Abfrage.

SELECT * from orders_by_date where price > 5000

Aktualisieren einer Data-Catalog-Ansicht

Der Lake Formation Admin oder der Definer kann die ALTER VIEW UPDATE DIALECT-Syntax verwenden, um die Ansichtsdefinition zu aktualisieren. Im folgenden Beispiel wird die Ansichtsdefinition so geändert, dass Spalten aus der returns-Tabelle statt aus der orders-Tabelle ausgewählt werden.

ALTER VIEW orders_by_date UPDATE DIALECT AS SELECT return_date, sum(totalprice) AS price FROM returns WHERE order_city = 'SEATTLE' GROUP BY orderdate

Weitere Informationen zur Syntax zum Erstellen und Verwalten von Data-Catalog-Ansichten finden Sie unter Syntax der Glue-Data-Catalog-Ansicht.