Kontenübergreifende Verbundabfragen aktivieren - 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.

Kontenübergreifende Verbundabfragen aktivieren

Verbundabfrage ermöglicht es Ihnen, andere Datenquellen als Amazon S3 mithilfe von Datenquellen-Connectors abzufragen, die auf AWS Lambda bereitgestellt sind. Das kontoübergreifende Verbundabfragefeature ermöglicht es, dass sich die Lambda-Funktion und die abzufragenden Datenquellen in verschiedenen Konten befinden.

Anmerkung

Verwenden Sie diese Methode nur, wenn Sie Ihre Verbunddatenquelle nicht bei der registriert haben. AWS Glue Data Catalog Wenn Sie Ihre Datenquelle bei der registriert haben AWS Glue Data Catalog, verwenden Sie das AWS Glue Data Catalog kontoübergreifende Funktionen- und Berechtigungsmodell. Weitere Informationen finden Sie unter Kontenübergreifendem Zugriff gewähren im AWS Glue Benutzerhandbuch.

Als Datenadministrator können Sie kontenübergreifende Verbundabfragen aktivieren, indem Sie Ihren Datenkonnektor mit dem Konto eines Datenanalysten teilen oder als Datenanalyst ein gemeinsam verwendetes Lambda ARN von einem Datenadministrator verwenden, um es Ihrem Konto hinzuzufügen. Wenn Konfigurationsänderungen an einem Connector im Ursprungskonto vorgenommen werden, wird die aktualisierte Konfiguration automatisch auf die freigegebenen Instances des Connectors in den Konten anderer Benutzer angewendet.

Überlegungen und Einschränkungen

  • Das kontoübergreifende Verbundabfragefeature ist für Nicht-Hive-Metastore-Daten-Connectors verfügbar, die eine Lambda-basierte Datenquelle verwenden.

  • Die Funktion ist für den AWS Glue Data Catalog Datenquellentyp nicht verfügbar. Hinweise zum kontenübergreifenden Zugriff auf AWS Glue Data Catalog s finden Sie unterKontenübergreifenden Zugriff auf AWS Glue Datenkataloge konfigurieren.

  • Wenn die Antwort der Lambda-Funktion Ihres Konnektors die Beschränkung der Lambda-Antwortgröße von 6 MB überschreitet, verschlüsselt Athena die Antwort automatisch, stapelt sie und spillt sie an einen von Ihnen konfigurierten Amazon-S3-Bucket weiter. Die Entität, die die Athena-Abfrage ausführt, muss Zugriff auf den Spill-Standort haben, damit Athena die übergebenen Daten lesen kann. Wir empfehlen, dass Sie eine Amazon-S3-Lebenszyklusrichtlinie einrichten, um Objekte vom Spill-Speicherort zu löschen, da die Daten nach Abschluss der Abfrage nicht benötigt werden.

  • Die Verwendung von Verbundabfragen in Across AWS-Regionen wird nicht unterstützt.

Erforderliche Berechtigungen

Um die erforderlichen Berechtigungen einzurichten, müssen Maßnahmen sowohl in Konto A als auch in Konto B ergriffen werden.

Aktionen für Konto A

Damit das Datenadministratorkonto A eine Lambda-Funktion mit dem Datenanalystenkonto B teilen kann, erfordert Konto B die Lambda-Aufruffunktion und den Spill-Bucket-Zugriff. Dementsprechend sollte Konto A der Lambda-Funktion und dem Prinzipal Zugriff auf seinen Spill-Bucket in Amazon S3 eine ressourcenbasierte Richtlinie hinzufügen.

  1. Die folgende Richtlinie erteilt Lambda-Funktionsberechtigungen für Konto B für eine Lambda-Funktion in Konto A aufzurufen.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountInvocationStatement", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::account-B-id:user/username"] }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:aws-region:account-A-id:function:lambda-function-name" } ] }
  2. Die folgende Richtlinie ermöglicht den Spill-Bucket-Zugriff auf den Prinzipal in Konto B.

    { "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::account-B-id:user/username"] }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::spill-bucket", "arn:aws:s3:::spill-bucket/*" ] } ] }
  3. Wenn die Lambda-Funktion den Spill-Bucket mit einem AWS KMS Schlüssel anstelle der vom Verband angebotenen Standardverschlüsselung verschlüsseltSDK, muss die AWS KMS Schlüsselrichtlinie in Konto A dem Benutzer in Konto B Zugriff gewähren, wie im folgenden Beispiel.

    { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::account-B-id:user/username"] }, "Action": [ "kms:Decrypt" ], "Resource": "*" // Resource policy that gets placed on the KMS key. }

Aktionen für Konto B

Damit Konto A seinen Connector mit Konto B gemeinsam nutzen kann, muss Konto B eine AthenaCrossAccountCreate-account-A-id so genannte Rolle erstellen, die Konto A übernimmt, indem es die AWS Security Token AssumeRoleAPIService-Aktion aufruft.

  1. Verwenden Sie die IAM Konsole oder die AWS CLI , um die AthenaCrossAccountCreate-account-A-id Rolle als benutzerdefinierte Vertrauensrichtlinien-Rolle zu erstellen. Eine benutzerdefinierte Vertrauensrichtlinie delegiert den Zugriff und ermöglicht es anderen, Aktionen in Ihrem AWS Konto durchzuführen. Eine Anleitung dazu finden Sie im Benutzerhandbuch unter Erstellen einer Rolle mithilfe benutzerdefinierter Vertrauensrichtlinien. IAM

    Die Vertrauensstellung sollte ein Hauptobjekt haben, in dem sich der Schlüssel AWS und der Wert ARN von Konto A befinden, wie im folgenden Beispiel.

    ... "Principal": { "AWS": ["arn:aws:iam::account-A-id:user/username"] }, ...
  2. Erstellen Sie auch in Konto B eine Richtlinie wie die folgende, die die CreateDataCatalog Aktion ermöglicht.

    { "Effect": "Allow", "Action": "athena:CreateDataCatalog", "Resource": "arn:aws:athena:*:account-B-id:datacatalog/*" }
  3. Fügen Sie die Richtlinie, die die CreateDataCatalog Aktion zulässt, der AthenaCrossAccountCreate-account-A-id Rolle hinzu, die Sie mit Konto B erstellt haben.

Freigeben einer Datenquelle in Konto A mit Konto B

Sobald die Berechtigungen eingerichtet sind, können Sie die Seite Datenquellen und Kataloge in der Athena-Konsole verwenden, um einen Datenkonnektor in Ihrem Konto (Konto A) mit einem anderen Konto (Konto B) zu teilen. Konto A behält die volle Kontrolle und den Besitz des Connectors. Wenn Konto A Konfigurationsänderungen am Connector vornimmt, gilt die aktualisierte Konfiguration für den freigegebenen Connector in Konto B.

So teilen Sie eine Lambda-Datenquelle in Konto A mit Konto B
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Wenn der Navigationsbereich in der Konsole nicht sichtbar ist, wählen Sie das Erweiterungsmenü auf der linken Seite.

    Wählen Sie das Erweiterungsmenü aus.
  3. Wählen Sie Datenquellen und Kataloge aus.

  4. Wählen Sie auf der Seite Datenquellen und Kataloge den Link des Connectors aus, den Sie teilen möchten.

  5. Wählen Sie auf der Detailseite für eine Lambda-Datenquelle im Menü Aktionen in der oberen rechten Ecke die Option Teilen aus.

  6. Auf der Seite Lambda-nameMit einem anderen Konto teilen? Geben Sie im Dialogfeld die erforderlichen Informationen ein.

    • Geben Sie für Data source name (Datenquellenname) den Namen der kopierten Datenquelle ein, wie er im anderen Konto angezeigt werden soll.

    • Geben Sie bei Konto-ID die ID des Kontos ein, mit dem Sie Ihre Datenquelle teilen möchten (in diesem Fall Konto B).

  7. Wählen Sie Freigeben. Der von Ihnen angegebene Connector für freigegebene Daten wird in Konto B erstellt. Konfigurationsänderungen am Connector in Konto A gelten für den Connector in Konto B.

Hinzufügen einer freigegebenen Datenquelle aus Konto A zu Konto B

Als Datenanalyst erhalten Sie möglicherweise ARN von einem Datenadministrator einen Connector, den Sie Ihrem Konto hinzufügen können. Sie können die Seite Datenquellen und Kataloge der Athena-Konsole verwenden, um das von Ihrem Administrator ARN bereitgestellte Lambda zu Ihrem Konto hinzuzufügen.

So fügen Sie Ihrem Konto das Lambda ARN eines Shared Data Connectors hinzu
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Wenn der Navigationsbereich nicht sichtbar ist, wählen Sie das Erweiterungsmenü auf der linken Seite.

  3. Wählen Sie Datenquellen und Kataloge aus.

  4. Wählen Sie auf der Seite Datenquellen und Kataloge die Option Datenquelle erstellen aus.

  5. Wählen Sie auf der Seite Datenquelle auswählen die Option Benutzerdefinierter oder gemeinsam genutzter Connector aus.

  6. Wählen Sie Weiter.

  7. Geben Sie auf der Seite Datenquellendetails eingeben im Abschnitt Verbindungsdetails für Lambda-Funktion auswählen oder eingeben das Lambda ARN von Konto A ein.

  8. Wählen Sie Weiter.

  9. Wählen Sie auf der Seite Überprüfen und erstellen die Option Datenquelle erstellen aus.

Fehlerbehebung

Wenn Sie eine Fehlermeldung erhalten, dass Konto A nicht über die Berechtigung verfügt, eine Rolle in Konto B zu übernehmen, stellen Sie sicher, dass der Name der in Konto B erstellten Rolle korrekt geschrieben ist und dass die richtige Richtlinie angehängt ist.