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.

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 unterKonfigurieren Sie den kontoübergreifenden Zugriff auf AWS Glue Datenkataloge.

  • 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

  • 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. }
  • 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 Service-Aktion aufruft. AssumeRoleAPI

    Die folgende Richtlinie, die die CreateDataCatalog-Aktion zulässt, sollte in Konto B erstellt und der AthenaCrossAccountCreate-account-A-id-Rolle hinzugefügt werden, die Konto B für Konto A erstellt.

    { "Effect": "Allow", "Action": "athena:CreateDataCatalog", "Resource": "arn:aws:athena:*:account-B-id:datacatalog/*" }

Freigeben einer Datenquelle in Konto A mit Konto B

Nachdem Berechtigungen vorhanden sind, können Sie die Data sources (Datenquellen)-Seite in der Athena-Konsole verwenden, um einen Daten-Connector 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 Data sources (Datenquellen) aus.

  4. Wählen Sie auf der Seite Data sources (Datenquellen) den Link des Connectors aus, den Sie freigeben möchten.

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

    Wählen Sie Share (Teilen) aus.
  6. In der Aktie Lambda-name Geben Sie in einem anderen Kontodialogfeld 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).

    Geben Sie einen Datenquellennamen und eine AWS-Konto ID ein.
  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 Datenquellenseite 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 Sie die neue Konsolenerfahrung verwenden und der Navigationsbereich nicht sichtbar ist, wählen Sie das Erweiterungsmenü auf der linken Seite.

  3. Wählen Sie Data sources (Datenquellen).

  4. Wählen Sie auf der Seite Data sources (Datenquellen) die Option Connect data source (Datenquelle verbinden) aus.

    Wählen Sie Connect data source (Datenquelle verbinden) aus.
  5. Wählen Sie Custom or shared connector (Benutzerdefinierter oder freigegebener Connector) aus.

    Wählen Sie Custom or shared connector (Benutzerdefinierter oder freigegebener Connector).
  6. Stellen Sie sicher, dass im Abschnitt Lambda-Funktion die Option Eine vorhandene Lambda-Funktion verwenden ausgewählt ist.

    Angabe des Lambda ARN eines anderen Kontos.
  7. Geben Sie für Lambda-Funktion auswählen oder eingeben das Lambda ARN von Konto A ein.

  8. Wählen Sie Connect data source (Datenquelle verbinden) 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.