Konfiguration des kontoübergreifenden AWS Glue Zugriffs in Athena for Spark - 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.

Konfiguration des kontoübergreifenden AWS Glue Zugriffs in Athena for Spark

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 for Spark in den AWS Glue Datenbanken und Tabellen des Besitzers ausführen.

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.

Um eine AWS Glue Richtlinie hinzuzufügen, die einer Verbraucherrolle Zugriff auf den Datenkatalog des Besitzers gewährt
  1. Melden Sie sich mit dem Konto des Katalogbesitzers bei der AWS Management Console 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.

    { "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/*" ] } ] }

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 fügen Sie die Richtlinie einer Rolle hinzu. Im folgenden Beispiel wird das Verbraucherkonto 666666666666 verwendet.

Um eine AWS Glue Richtlinie für den Zugriff auf die Richtlinien des Besitzers zu erstellen AWS Glue Data Catalog
  1. Melden Sie sich mit dem Verbraucherkonto bei der AWS Management Console 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.

    { "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.

Um die AWS Glue Richtlinie an die Rollen im Kundenkonto anzuhängen
  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.

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 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 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.

Verwendung der Methode zur Trennung von AWS Glue Katalogen

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()

Verwendung des AWS Glue Katalog-ID-Ansatzes

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

Verwaltung kontenübergreifender Berechtigungen AWS Glue sowohl mit Lake Formation als auch mit Lake Formation im AWS Lake Formation Developer Guide.

Konfigurieren Sie in AWS Prescriptive Guidance Patterns den kontoübergreifenden Zugriff auf ein geteiltes Objekt AWS Glue Data Catalog mithilfe von Amazon Athena.