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.
Kontenübergreifenden Zugriff auf AWS Glue Datenkataloge konfigurieren
Sie können die kontoübergreifende AWS Glue Katalogfunktion von Athena verwenden, um einen Katalog von einem AWS Glue anderen Konto als Ihrem eigenen aus zu registrieren. Nachdem Sie die erforderlichen IAM Berechtigungen für den Katalog konfiguriert AWS Glue und ihn als DataCatalogAthena-Ressource registriert haben, können Sie Athena verwenden, um kontenübergreifende Abfragen auszuführen. Informationen zur Verwendung der Athena-Konsole zum Registrieren eines Katalogs von einem anderen Konto finden Sie unter Einen Datenkatalog von einem anderen Konto aus registrieren.
Weitere Informationen zum kontoübergreifenden Zugriff finden Sie unter Gewähren von kontenübergreifendem Zugriff im AWS Glue Entwicklerhandbuch.AWS Glue
Bevor Sie beginnen
Da diese Funktion vorhandene DataCatalog
Ressourcen APIs und Funktionen von Athena verwendet, um den kontoübergreifenden Zugriff zu ermöglichen, empfehlen wir Ihnen, die folgenden Ressourcen zu lesen, bevor Sie beginnen:
-
Verbinden zu Datenquellen- Enthält Themen zur Verwendung von Athena mit AWS Glue, Hive oder Lambda-Datenkatalogquellen.
-
Datenkatalog-Beispielrichtlinien – Zeigt, wie Richtlinien geschrieben werden, die den Zugriff auf Datenkataloge steuern.
-
Verwenden Sie die AWS CLI mit Hive-Metastoren— Zeigt, wie Metastore AWS CLI mit Hive verwendet werden, enthält jedoch Anwendungsfälle, die auf andere Datenquellen anwendbar sind.
Überlegungen und Einschränkungen
Derzeit gelten für den kontoübergreifenden Zugriff auf den AWS Glue Athena-Katalog die folgenden Einschränkungen:
-
Die Funktion ist nur verfügbar, AWS-Regionen wenn die Athena-Engine-Version 2 oder höher unterstützt wird. Weitere Informationen über Athena-Engine-Versionen finden Sie unter Athena-Engine-Versionierung. Informationen zum Aktualisieren der Engine-Version für eine Arbeitsgruppe finden Sie unter Athena-Engine-Versionen ändern.
-
Wenn Sie ein anderes Konto AWS Glue Data Catalog in Ihrem Konto registrieren, erstellen Sie eine regionale
DataCatalog
Ressource, die nur mit den Daten des anderen Kontos in dieser bestimmten Region verknüpft ist. -
Derzeit werden
CREATE VIEW
-Anweisungen, die einen kontoübergreifenden AWS Glue -Katalog enthalten, nicht unterstützt. -
Kataloge, die mit AWS verwalteten Schlüsseln verschlüsselt wurden, können nicht kontenübergreifend abgefragt werden. Verwenden Sie für Kataloge, die Sie kontenübergreifend abfragen möchten, stattdessen vom Kunden verwaltete Schlüssel ().
KMS_CMK
Informationen zu den Unterschieden zwischen vom Kunden verwalteten Schlüsseln und AWS verwalteten Schlüsseln finden Sie im AWS Key Management Service Entwicklerhandbuch unter AWS Kundenschlüssel und Schlüssel.
Erste Schritte
Im folgenden Szenario möchte das Konto „Kreditnehmer“ (666666666666) eine SELECT
Abfrage ausführen, die sich auf den AWS Glue Katalog bezieht, der zum Konto „Besitzer“ (999999999999) gehört, wie im folgenden Beispiel:
SELECT * FROM ownerCatalog.tpch1000.customer
Im folgenden Verfahren wird in den Schritten 1a und 1b gezeigt, wie dem Kreditnehmerkonto sowohl vom Kreditnehmer als auch vom Eigentümer aus Zugriff auf die Ressourcen des Eigentümerkontos gewährt wird. AWS Glue Das Beispiel gewährt Zugriff auf die Datenbank tpch1000
und die Tabelle customer
. Ändern Sie diese Beispielnamen entsprechend Ihren Anforderungen.
Schritt 1a: Erstellen Sie eine Kreditnehmerrolle mit einer Richtlinie für den Zugriff auf die Ressourcen des Eigentümers AWS Glue
Um eine Rolle für ein Kreditnehmerkonto mit einer Richtlinie für den Zugriff auf die AWS Glue Ressourcen des Eigentümerkontos zu erstellen, können Sie die Konsole AWS Identity and Access Management (IAM) oder die verwenden. IAMAPI Die folgenden Verfahren verwenden die IAM Konsole.
Um eine Kreditnehmerrolle und eine Richtlinie für den Zugriff auf die Ressourcen des Eigentümerkontos AWS Glue zu erstellen
-
Melden Sie sich über das Kreditnehmerkonto unter https://console.aws.amazon.com/iam/
bei der IAM Konsole an. -
Erweitern Sie im Navigationsbereich die Option Zugriffsverwaltung, und wählen Sie dann Richtlinien aus.
-
Wählen Sie Create Policy (Richtlinie erstellen) aus.
-
Wählen Sie für den Policy-Editor die Option JSON.
-
Geben Sie im Richtlinieneditor die folgende Richtlinie ein und ändern Sie sie dann entsprechend Ihren Anforderungen:
{ "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/tpch1000
", "arn:aws:glue:us-east-1
:999999999999
:table/tpch1000
/customer
" ] } ] } -
Wählen Sie Weiter.
-
Geben Sie auf der Seite Überprüfen und erstellen unter Richtlinienname einen Namen für die Richtlinie ein (z. B.
CrossGluePolicyForBorrowerRole
). -
Wählen Sie Create Policy (Richtlinie erstellen) aus.
-
Wählen Sie im Navigationsbereich Rollen aus.
-
Wählen Sie Rolle erstellen aus.
-
Wählen Sie auf der Seite Vertrauenswürdige Entität auswählen AWS-Kontodie Option und anschließend Weiter aus.
-
Geben Sie auf der Seite „Berechtigungen hinzufügen“ den Namen der Richtlinie, die Sie erstellt haben, in das Suchfeld ein (z. B.
CrossGluePolicyForBorrowerRole
). -
Aktivieren Sie das Kontrollkästchen neben dem Richtliniennamen und wählen Sie dann Weiter aus.
-
Geben Sie auf der Seite Name, review, and create (Benennen, überprüfen und erstellen) für Role name (Rollenname) einen Namen für die Rolle ein (z. B.
CrossGlueBorrowerRole
). -
Wählen Sie Rolle erstellen.
Schritt 1b: Erstellen Sie eine Eigentümerrichtlinie, um dem Kreditnehmer AWS Glue Zugriff zu gewähren
Um vom Besitzerkonto (999999999999) aus AWS Glue Zugriff auf die Rolle des Kreditnehmers zu gewähren, können Sie die Konsole oder den Vorgang verwenden. AWS Glue AWS Glue PutResourcePolicyAPI Das folgende Verfahren verwendet die Konsole. AWS Glue
Um dem Eigentümer AWS Glue Zugriff auf das Kreditnehmerkonto zu gewähren
-
Melden Sie sich über das Besitzerkonto https://console.aws.amazon.com/glue/
bei der AWS Glue Konsole an. -
Erweitern Sie im Navigationsbereich den Eintrag Data Catalog und wählen Sie dann Katalogeinstellungen aus.
-
Geben Sie im Feld Berechtigungen eine Richtlinie wie die folgende ein. Geben Sie für
rolename
die Rolle ein, die der Kreditnehmer in Schritt 1a erstellt hat (z. B.CrossGlueBorrowerRole
). Wenn Sie den Berechtigungsumfang erweitern möchten, können Sie das Platzhalterzeichen*
sowohl für den Datenbank- als auch für den Tabellenressourcentyp verwenden.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
666666666666
:user/username
", "arn:aws:iam::666666666666
:role/rolename
" ] }, "Action": "glue:*", "Resource": [ "arn:aws:glue:us-east-1
:999999999999
:catalog", "arn:aws:glue:us-east-1
:999999999999
:database/tpch1000
", "arn:aws:glue:us-east-1
:999999999999
:table/tpch1000
/customer
" ] } ] }
Wenn Sie fertig sind, empfehlen wir Ihnen, die zu verwenden, AWS Glue APIum einige kontoübergreifende Testanrufe zu tätigen, um zu überprüfen, ob die Berechtigungen erwartungsgemäß konfiguriert sind.
Schritt 2: Der Kreditnehmer registriert AWS Glue Data Catalog das, was zum Besitzerkonto gehört
Das folgende Verfahren zeigt Ihnen, wie Sie die Athena-Konsole verwenden, um den AWS Glue Data Catalog im Amazon-Web-Services-Besitzerkonto als Datenquelle zu konfigurieren. Hinweise zur Verwendung von API Operationen anstelle der Konsole zur Registrierung des Katalogs finden Sie unter(Optional) Verwenden Sie dieAPI, um einen Athena-Datenkatalog zu registrieren, der zum Besitzerkonto gehört.
So registrieren Sie ein Konto, das zu einem anderen Konto AWS Glue Data Catalog gehört
Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/
. Wenn der Navigationsbereich in der Konsole nicht sichtbar ist, wählen Sie das Erweiterungsmenü auf der linken Seite.
-
Erweitern Sie Administration und wählen Sie dann Datenquellen aus.
-
Wählen Sie oben rechts Create data source (Datenquelle erstellen) aus.
-
Wählen Sie auf der Seite Datenquelle auswählen für Datenquellen die Option S3 - AWS Glue Data Catalog und wählen Sie dann Weiter aus.
-
Wählen Sie auf der Seite Enter data source details (Details zur Datenquelle eingeben) im Abschnitt AWS Glue Data Catalog für Choose an AWS Glue Data Catalog (auswählen) die Option AWS Glue Data Catalog in another account (in einem anderen Konto) aus.
-
Geben Sie für Data source details (Datenquellen-Details) die folgenden Informationen ein:
-
Name der Datenquelle — Geben Sie den Namen ein, den Sie in Ihren SQL Abfragen verwenden möchten, um auf den Datenkatalog im anderen Konto zu verweisen.
-
Beschreibung – (Optional) Geben Sie eine Beschreibung des Datenkatalogs im anderen Konto ein.
-
Katalog-ID – Geben Sie die 12-stellige Amazon-Web-Services-Konto-ID des Kontos ein, zu dem der Datenkatalog gehört. Die Amazon-Web-Services-Konto-ID ist die Katalog-ID.
-
-
(Optional) Erweitern Sie Tags und geben Sie Schlüssel-Wert-Paare ein, die Sie mit der Datenquelle verknüpfen möchten. Weitere Informationen zu Tags erhalten Sie unter Schlagwort: Athena resources.
-
Wählen Sie Weiter.
-
Überprüfen Sie auf der Seite Review and create (Überprüfen und erstellen) die von Ihnen bereitgestellten Informationen, und wählen Sie dann Create data source (Datenquelle erstellen) aus. Die Seite Data source details (Datenquellen-Details) listet die Datenbanken und Tags für den von Ihnen registrierten Datenkatalog auf.
-
Wählen Sie Datenquellen und Kataloge aus. Der von Ihnen registrierte Datenkatalog wird in der Spalte Data source name (Datenquellen-Name) aufgeführt.
-
Um Informationen zum Datenkatalog anzuzeigen oder zu bearbeiten, wählen Sie den Katalog und dann Actions (Aktionen), Edit (Bearbeiten) aus.
-
Um den neuen Datenkatalog zu löschen, wählen Sie den Katalog und dann Actions (Aktionen), Delete (Löschen) aus.
Schritt 3: Der Empfänger sendet eine Abfrage
Der Kreditnehmer sendet mithilfe von eine Abfrage, die auf den Katalog verweist. catalog
database
. table
Syntax, wie im folgenden Beispiel:
SELECT * FROM ownerCatalog.tpch1000.customer
Anstatt die vollqualifizierte Syntax zu verwenden, kann der Kreditnehmer den Katalog auch kontextbezogen angeben, indem er ihn über die weitergibt. QueryExecutionContext
(Optional) Zusätzliche Amazon S3 S3-Berechtigungen konfigurieren
-
Wenn das Kreditnehmerkonto eine Athena-Abfrage verwendet, um neue Daten in eine Tabelle im Besitzerkonto zu schreiben, hat der Eigentümer nicht automatisch Zugriff auf diese Daten in Amazon S3, obwohl die Tabelle im Konto des Eigentümers vorhanden ist. Dies liegt daran, dass der Kreditnehmer der Objekteigentümer der Informationen in Amazon S3 ist, sofern nicht anders konfiguriert. Um dem Eigentümer Zugriff auf die Daten zu gewähren, müssen Sie in einem zusätzlichen Schritt die Berechtigungen für die Objekte entsprechend festlegen.
-
Bestimmte kontoübergreifende DDL Operationen MSCK REPAIR TABLE erfordern beispielsweise Amazon S3 S3-Berechtigungen. Wenn das Kreditnehmerkonto beispielsweise eine kontoübergreifende
MSCK REPAIR
Operation mit einer Tabelle im Eigentümerkonto durchführt, deren Daten sich in einem S3-Bucket für das Besitzerkonto befinden, muss dieser Bucket der vom Kreditnehmer übernommenen Rolle Berechtigungen gewähren, damit die Abfrage erfolgreich ist.
Informationen zur Gewährung von Bucket-Berechtigungen finden Sie unter Wie lege ich Bucket-Berechtigungen fest ACL? im Amazon Simple Storage Service-Benutzerhandbuch.
(Optional) Verwenden Sie einen Katalog dynamisch
In einigen Fällen möchten Sie möglicherweise schnell einen kontoübergreifenden AWS Glue
-Katalog testen, ohne ihn registrieren zu müssen. Sie können kontoübergreifende Abfragen dynamisch durchführen, ohne das DataCatalog
Ressourcenobjekt zu erstellen, wenn die erforderlichen IAM und Amazon S3 S3-Berechtigungen korrekt konfiguriert sind, wie weiter oben in diesem Dokument beschrieben.
Verwenden Sie die Syntax im folgenden Beispiel, um explizit auf einen Katalog ohne Registrierung zu verweisen:
SELECT * FROM "glue:arn:aws:glue:us-east-1:999999999999:catalog".tpch1000.customer
Verwenden Sie das Format "glue:
„, in dem sich das Format <arn>
befindet AWS Glue Data Catalog ARN, das Sie verwenden möchten. In diesem Beispiel verwendet Athena diese Syntax, um dynamisch auf den AWS Glue Datenkatalog des Kontos 999999999999 zu verweisen, als ob Sie ein separates Objekt dafür erstellt hätten. <arn>
DataCatalog
Hinweise zur Verwendung dynamischer Kataloge
Beachten Sie beim Verwenden von dynamischen Katalogen die folgenden Punkte.
-
Für die Verwendung eines dynamischen Katalogs sind die IAM Berechtigungen erforderlich, die Sie normalerweise für API Athena-Datenkatalogvorgänge verwenden. Der Hauptunterschied besteht darin, dass der Name der Datenkatalog-Ressource der
glue:*
-Namenskonvention folgt. -
Der Katalog ARN muss zu derselben Region gehören, in der die Abfrage ausgeführt wird.
-
Wenn Sie einen dynamischen Katalog in einer DML Abfrage oder Ansicht verwenden, setzen Sie ihn in doppelte Anführungszeichen (
\"
). Wenn Sie einen dynamischen Katalog in einer DDL Abfrage verwenden, umgeben Sie ihn mit Backtick-Zeichen (`
).
(Optional) Verwenden Sie dieAPI, um einen Athena-Datenkatalog zu registrieren, der zum Besitzerkonto gehört
Anstatt die Athena-Konsole wie in Schritt 2 beschrieben zu verwenden, können Sie API Operationen verwenden, um den Datenkatalog zu registrieren, der zum Besitzerkonto gehört.
Der Ersteller der DataCatalogAthena-Ressource muss über die erforderlichen Berechtigungen verfügen, um den Athena-Vorgang CreateDataCatalogAPIauszuführen. Je nach Ihren Anforderungen kann der Zugriff auf zusätzliche API Operationen erforderlich sein. Weitere Informationen finden Sie unter Datenkatalog-Beispielrichtlinien.
Der folgende CreateDataCatalog
Anforderungstext registriert einen AWS Glue Katalog für den kontoübergreifenden Zugriff:
# Example CreateDataCatalog request to register a cross-account Glue catalog: { "Description": "Cross-account Glue catalog", "Name": "ownerCatalog", "Parameters": {"catalog-id" : "999999999999" # Owner's account ID }, "Type": "GLUE" }
Der folgende Beispielcode verwendet einen Java-Client, um das DataCatalog
-Objekt zu erstellen.
# Sample code to create the DataCatalog through Java client CreateDataCatalogRequest request = new CreateDataCatalogRequest() .withName("ownerCatalog") .withType(DataCatalogType.GLUE) .withParameters(ImmutableMap.of("catalog-id", "999999999999")); athenaClient.createDataCatalog(request);
Nach diesen Schritten sollte der Kreditnehmer sehen, ownerCatalog
wann er den ListDataCatalogsAPIVorgang aufruft.
Weitere Ressourcen
-
Im Leitfaden AWS Prescriptive Guidance Patterns können Sie den kontoübergreifenden Zugriff auf eine gemeinsam genutzte Website AWS Glue Data Catalog mithilfe von Amazon Athena konfigurieren.
-
Kontenübergreifende AWS Glue Data Catalog Abfragen mit Amazon Athena
im AWS Big Data-Blog -
Gewähren von kontenübergreifendem Zugriff im AWS Glue -Entwicklerhandbuch