Kontoübergreifenden AWS Glue-Zugriff für Spark in Athena konfigurieren - Amazon Athena

Kontoübergreifenden AWS Glue-Zugriff für Spark in Athena konfigurieren

In diesem Thema wird gezeigt, wie das Verbraucherkonto 666666666666 und das Besitzerkonto 999999999999 für den kontoübergreifenden AWS Glue-Zugriff konfiguriert werden können. Wenn die Konten konfiguriert sind, kann das Verbraucherkonto Abfragen von Athena für Spark in den AWS Glue-Datenbanken und Tabellen des Besitzers ausführen.

Schritt 1: Stellen Sie in AWS Glue Zugriff auf Verbraucherrollen bereit

In AWS Glue erstellt der Eigentümer eine Richtlinie, die den Rollen des Verbrauchers Zugriff auf den AWS Glue-Datenkatalog des Besitzers gewährt.

Wie Sie eine AWS Glue-Richtlinie hinzufügen, die einer Verbraucherrolle Zugriff auf den Datenkatalog des Besitzers gewährt
  1. Melden Sie sich mit dem Konto des Katalogbesitzers bei der AWS-Managementkonsole an.

  2. Öffnen Sie die AWS Glue-Konsole unter https://console.aws.amazon.com/glue/.

  3. Erweitern Sie im Navigationsbereich den Eintrag Data Catalog und wählen Sie dann Katalogeinstellungen aus.

  4. Fügen Sie auf der Seite mit den Datenkatalogeinstellungen im Abschnitt Berechtigungen eine Richtlinie wie die folgende hinzu. Diese Richtlinie bietet Rollen für das Verbraucherkonto 666666666666, Zugriff auf den Datenkatalog im Besitzerkonto 999999999999.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "Cataloguers", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::666666666666:role/Admin", "arn:aws:iam::666666666666:role/AWSAthenaSparkExecutionRole" ] }, "Action": "glue:*", "Resource": [ "arn:aws:glue:us-west-2:999999999999:catalog", "arn:aws:glue:us-west-2:999999999999:database/*", "arn:aws:glue:us-west-2:999999999999:table/*" ] } ] }

Schritt 2: Konfigurieren Sie das Verbraucherkonto für den Zugriff

Erstellen Sie im Verbraucherkonto eine Richtlinie, die den Zugriff auf die Datenbanken und Tabellen des AWS Glue Data Catalog-Besitzers ermöglicht, und weisen Sie die Richtlinie einer Rolle zu. Im folgenden Beispiel wird das Verbraucherkonto 666666666666 verwendet 666666666666.

Wie Sie eine AWS Glue-Richtlinie für den Zugriff auf die AWS Glue Data Catalog des Besitzers zu erstellen
  1. Melden Sie sich mit dem Verbraucherkonto bei der AWS-Managementkonsole an.

  2. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  3. Erweitern Sie im Navigationsbereich die Option Zugriffsverwaltung, und wählen Sie dann Richtlinien aus.

  4. Wählen Sie Richtlinie erstellen aus.

  5. Wählen Sie auf der Seite Berechtigungen angeben die Option JSON aus.

  6. Geben Sie im Richtlinien-Editor eine JSON-Anweisung wie die folgende ein, die AWS Glue-Aktionen im Datenkatalog des Eigentümerkontos ermöglicht.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:*", "Resource": [ "arn:aws:glue:us-east-1:999999999999:catalog", "arn:aws:glue:us-east-1:999999999999:database/*", "arn:aws:glue:us-east-1:999999999999:table/*" ] } ] }
  7. Wählen Sie Weiter aus.

  8. Geben Sie auf der Seite Richtlinie prüfen im Feld Name einen Namen für die Richtlinie ein.

  9. Wählen Sie Richtlinie erstellen aus.

Als Nächstes verwenden Sie die IAM-Konsole im Verbraucherkonto, um die Richtlinie, die Sie gerade erstellt haben, der IAM-Rolle oder den Rollen zuzuordnen, die das Verbraucherkonto für den Zugriff auf den Datenkatalog des Besitzers verwendet.

Wie Sie die AWS Glue-Richtlinie den Rollen im Verbraucherkonto zuordnen
  1. Wählen Sie im Navigationsbereich der IAM-Konsole Rollen aus.

  2. Suchen Sie auf der Seite Rollen nach der Rolle, der Sie die Richtlinie zuordnen möchten.

  3. Wählen Sie Berechtigungen hinzufügen aus und wählen Sie dann Richtlinien direkt anhängen aus.

  4. Suchen Sie die Richtlinie, die Sie gerade erstellt haben.

  5. Aktivieren Sie das Kontrollkästchen für die Richtlinie und wählen Sie dann Berechtigungen hinzufügen aus.

  6. Wiederholen Sie die Schritte, um die Richtlinie zu anderen Rollen hinzuzufügen, die Sie verwenden möchten.

Schritt 3: Konfigurieren Sie eine Sitzung und erstellen Sie eine Abfrage

Erstellen Sie in Athena Spark im Anfordererkonto mit der angegebenen Rolle eine Sitzung, um den Zugriff zu testen, indem Sie ein Notebook erstellen oder eine aktuelle Sitzung bearbeiten. Wenn Sie die Sitzungseigenschaften konfigurieren, geben Sie eine der folgenden an:

  • Der AWS Glue-Katalog-Separator – Bei diesem Ansatz schließen Sie die Konto-ID des Besitzers in Ihre Abfragen ein. Verwenden Sie diese Methode, wenn Sie die Sitzung verwenden möchten, um Datenkataloge von verschiedenen Besitzern abzufragen.

  • Die AWS Glue-Katalog-ID – Bei diesem Ansatz fragen Sie die Datenbank direkt ab. Diese Methode ist praktischer, wenn Sie die Sitzung verwenden möchten, um nur den Datenkatalog eines einzelnen Besitzers abzufragen.

Wenn Sie die Sitzungseigenschaften bearbeiten, fügen Sie Folgendes hinzu:

{ "spark.hadoop.aws.glue.catalog.separator": "/" }

Wenn Sie eine Abfrage in einer Zelle ausführen, verwenden Sie eine Syntax wie im folgenden Beispiel. Beachten Sie, dass in der FROM-Klausel die Katalog-ID und das Trennzeichen vor dem Datenbanknamen angegeben werden müssen.

df = spark.sql('SELECT requestip, uri, method, status FROM `999999999999/mydatabase`.cloudfront_logs LIMIT 5') df.show()

Wenn Sie die Sitzungseigenschaften bearbeiten, fügen Sie folgende Eigenschaft hinzu. Ersetzen Sie 999999999999 durch die Konto-ID des Besitzers.

{ "spark.hadoop.hive.metastore.glue.catalogid": "999999999999" }

Wenn Sie eine Abfrage in einer Zelle ausführen, verwenden Sie eine Syntax wie die folgende. Beachten Sie, dass in der FROM-Klausel die Katalog-ID und das Trennzeichen vor dem Datenbanknamen nicht angegeben werden müssen.

df = spark.sql('SELECT * FROM mydatabase.cloudfront_logs LIMIT 10') df.show()

Weitere Ressourcen

Kontoübergreifender Zugriff auf AWS Glue-Datenkataloge konfigurieren

Verwalten von kontenübergreifenden Berechtigungen mithilfe von AWS Glue und Lake Formation im AWS Lake Formation-Entwicklerhandbuch.

Konfigurieren Sie den kontoübergreifenden Zugriff auf eine gemeinsame AWS Glue Data Catalog mit Amazon Athena in der Anleitung für Muster in der AWS Prescriptive Guidance.