Athena zum IAM Identity Center verbinden - Amazon Athena

Athena zum IAM Identity Center verbinden

Im folgenden Abschnitt wird beschrieben, wie Athena mit IAM Identity Center verbunden wird.

Vertrauenswürdigen Token-Aussteller einrichten

Folgen Sie dem Leitfaden Einrichten eines vertrauenswürdigen Token-Ausstellers um einen vertrauenswürdigen Token-Aussteller einzurichten. Hiermit wird ein AWS IAM Identity Center erstellt.

Anmerkung

Wählen Sie als Anbietertyp OpenID Connect aus. Geben Sie unter Anbieter-URL die Aussteller-URL Ihres Identitätsanbieters ein. Geben Sie für Zielgruppe die Client-ID an, die vom Identitätsanbieter für Ihre App ausgestellt wurde.

Kopieren Sie den Anwendungs-Ressourcennamen (ARN) für den AWS IAM-Identitätsanbieter. Weitere Informationen finden Sie unter Identitätsanbieter und Verbund.

IAM-Rollen einrichten

IAM-Anwendungsrolle einrichten

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

  2. Wählen Sie im linken Navigationsbereich Rollen und dann Rolle erstellen aus.

  3. Für Vertrauenstyp der Entität wählen Sie Benutzerdefinierte Vertrauensrichtlinie, wie folgt:

    1. Fügen Sie für Verbunds-Prinzipal den ARN für den AWS IAM-Identitätsanbieter hinzu, den Sie bei der Einrichtung eines vertrauenswürdigen Token-Ausstellers kopiert haben.

    2. Fügen Sie für die Richtlinienbedingung die Zielgruppe Ihres externen Verbund-Identitätsanbieters hinzu.

  4. Fügen Sie die folgende Inline-Richtlinie hinzu, um dem Benutzer Zugriff auf Berechtigungen für CreateTokenWithIAM, ListTagsForResource und AssumeRoleWithWebIdentity zu gewähren.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListTags*", "sso:ListTags*" ], "Resource": "*" } ] }
    Anmerkung

    CreateTokenWithIam-Berechtigungen werden in der vom Kunden verwalteten IAM Identity Center-Anwendung erteilt.

  5. Kopieren Sie den ARN für die Anwendungsrolle.

IAM-Zugriffsrolle einrichten

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

  2. Wählen Sie im linken Navigationsbereich Rollen und dann Rolle erstellen aus.

  3. Für Vertrauenstyp der Entität wählen Sie Benutzerdefinierte Vertrauensrichtlinie, wie folgt:

    1. Fügen Sie für Verbund-Prinzipal den ARN für AWS IAM Identity Center hinzu, den Sie bei der Einrichtung eines vertrauenswürdigen Token-Ausstellers kopiert haben.

    2. Fügen Sie für AWSPrinzipal den ARN für die AWS IAM-Anwendungsrolle hinzu, den Sie bei der Einrichtung der IAM-Anwendungsrolle kopiert haben.

  4. Fügen Sie die folgende Inline-Richtlinie hinzu, um Zugriff für Treiber-Workflows zu gewähren:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:ListWorkGroups", "athena:ListDataCatalogs", "athena:ListDatabases", "athena:ListTableMetadata" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:GetTable", "glue:GetTables", "glue:UpdateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:GetTableVersion", "glue:GetTableVersions", "glue:DeleteTableVersion", "glue:BatchDeleteTableVersion", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:UpdatePartition", "glue:DeletePartition", "glue:BatchDeletePartition" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" } ] }
  5. Kopieren Sie den ARN für die Zugriffsrolle.

AWS IAM Identity Center-Kundenanwendung konfigurieren

Um die Kundenanwendung zu konfigurieren, folgen Sie den Schritten unter Kundenverwaltete OAuth 2.0-Anwendungen für die Weitergabe vertrauenswürdiger Identitäten einrichten. Beachten Sie dabei die folgenden Überlegungen für Athena.

  • Für Tags, fügen Sie die folgenden Schlüssel/Wert-Paare hinzu:

    • SchlüsselAthenaDriverOidcAppArn

    • WertAccessRoleARN, das bei der Einrichtung der IAM-Zugriffsrolle kopiert wurde.

  • Fügen Sie bei der Angabe von Anmeldeinformationen den ARN für die AWS IAM-Anwendungsrolle hinzu, den Sie bei der Einrichtung der IAM-Anwendungsrolle kopiert haben.

  • Wählen Sie für Anwendungen, die Anfragen empfangen können, AWS-Lake-Formation-AWS-Glue-Datenkatalog-<account-id>.

  • Damit Zugriffsbereiche gelten sollen, wählen Sie lakeformation:query aus.

Arbeitsgruppenzuordnung konfigurieren

  1. Wählen Sie im Navigationsbereich der Athena-Konsole Workgroups (Arbeitsgruppen) aus.

  2. Wählen Sie eine Arbeitsgruppe aus der Liste aus und öffnen Sie die Registerkarte Tags.

  3. Wählen Sie Tags verwalten und geben Sie Folgendes ein:

    1. SchlüsselAthenaDriverOidcAppArn

    2. Wert — ARN für die AWS IAM Identity Center-Anwendung.

  4. Wählen Sie Speichern.

Sobald Administratoren die einmalige Einrichtung abgeschlossen haben, können sie wichtige Verbindungsdetails an ihre Benutzer verteilen. Benutzer benötigen diese fünf obligatorischen Parameter, um SQL-Workloads auszuführen:

  1. ApplicationRoleARN — Der ARN der Anwendungsrolle

  2. jwtWebIdentityToken — Das JWT-Token für die Identitätsprüfung

  3. workgroupARN — Der ARN der Athena-Arbeitsgruppe

  4. jwtroleSessionName — Der Sitzungsname für die JWT-Rolle

  5. CredentialsProvider — Die Konfiguration des Anbieters für Anmeldeinformationen

Anmerkung

Wir haben die Konfiguration der Verbindungszeichenfolge durch strategisches Markieren vereinfacht. Durch die korrektes Markieren sowohl der Athena-Arbeitsgruppe als auch der vom AWS IAM Identity Center Kunden verwalteten Anwendung entfällt die Notwendigkeit, dass Benutzer AccessRoleArn und CustomerIdcApplicationArn angeben müssen. Das Plugin erledigt dies automatisch, indem es die Anwendungsrolle verwendet, um die erforderlichen Tags zu finden und die entsprechenden ARN-Werte für seinen Workflow abzurufen.

Administratoren können Benutzer weiterhin dazu veranlassen, AccessRoleArn oder CustomerIdcApplicationArn in der Verbindungszeichenfolge anzugeben, indem sie die Berechtigungen für die Anwendungsrolle nach Bedarf anpassen.

Führen Sie Abfragen mithilfe von Athena-Treibern aus, die Weitergabe vertrauenswürdiger Identitäten aktiviert haben

Laden Sie die neueste Version des Treibers herunter, den Sie verwenden möchten. Weitere Informationen für JDBC-Installation finden Sie unter Erste Schritte mit dem JDBC-Treiber 3.x. Sie können ODBC-Treiber entsprechend der unterstützten Plattform installieren. Weitere Informationen finden Sie unter Erste Schritte mit dem ODBC-2.x-Treiber. Geben Sie je nach dem Treiber, den Sie verwenden möchten, die folgenden Parameter an:

Anmerkung

Die Weitergabe vertrauenswürdiger Identitäten mit Treibern ist erst ab Version 3.6.0 in JDBC und Version 2.0.5.0 in ODBC verfügbar.

Verwenden Sie Athena-Treiber und Weitergabe vertrauenswürdiger Identitäten mit DBeaver

  1. Laden Sie das neueste JDBC-Jar mit Abhängigkeiten von Athena herunter. Weitere Informationen finden Sie unter Athena-JDBC-3.x-Treiber.

  2. Öffnen Sie die DBeaver-Anwendung auf Ihrem Computer.

  3. Navigieren Sie zum Datenbank-Menü oben auf dem Bildschirm und wählen Sie dann Treibermanager.

  4. Wählen Sie Neu und dann Bibliotheken.

  5. Fügen Sie den neuesten Treiber hinzu und wählen Sie Klasse suchen. Dadurch erhalten Sie einen Dateipfad wie com.amazon.athena.jdbc.AthenaDriver.

  6. Öffnen Sie die Registerkarte Einstellungen und geben Sie die folgenden Felder ein

    1. Treibername — Athena JDBC Weitergabe vertrauenswürdiger Identitäten

    2. Klassennamecom.amazon.athena.jdbc.AthenaDriver

    3. Wählen Sie die Option Keine Authentifizierung.

  7. Wählen Sie Mit einer Datenbank verbinden und suchen Sie Athena JDBC Weitergabe vertrauenswürdiger Identitäten. Dadurch gelangen Sie zur JDBC-URL. Weitere Informationen finden Sie unter Konfigurieren des Treibers.

  8. Geben Sie folgende Details an

    1. Arbeitsgruppe — Die Arbeitsgruppe, in der Sie Abfragen ausführen möchten. Weitere Informationen zu Arbeitsgruppen finden Sie unter WorkGroup.

    2. Region – Die AWS-Region in der Abfragen ausgeführt werden. Eine Liste der unterstützten Regionen finden Sie unter Endpunkte und Kontingente von Amazon Athena.

    3. OutputLocation — Der Ort in Amazon S3, an dem Sie die Abfrageergebnisse speichern möchten. Hinweise zum Ausgabespeicherort finden Sie unter ResultConfiguration.

    4. CredentialsProvider — Geben Sie JWT_TIP ein.

    5. ApplicationRoleARN — Der ARN der Rolle zum Aktivieren von AssumeRoleWithWebIdentity. Weitere Informationen über ARN-Rollen finden Sie unter AssumeRole in der AWS Security Token Service-API-Referenz.

    6. workgroupArn — Der ARN der Arbeitsgruppe, in der Abfragen ausgeführt werden. Es muss sich um dieselbe Arbeitsgruppe handeln, die im Feld Arbeitsgruppe angegeben wurde. Weitere Informationen zu Arbeitsgruppen finden Sie unter WorkGroup.

    7. JwtRoleSessionName – Der Name der Sitzung, wenn Sie JWT-Anmeldeinformationen für die Authentifizierung verwenden. Es kann ein beliebiger Name Ihrer Wahl sein.

    8. JwtWebIdentityToken – Das JWT-Token, das von einem externen Verbund-Identitätsanbieter abgerufen wurde. Dieses Token wird zur Authentifizierung bei Athena verwendet.

      jdbc:athena://Workgroup=<value>;Region=<region>;OutputLocation=<location>;CredentialsProvider=JWT_TIP;ApplicationRoleArn=<arn>;WorkgroupArn=<arn>;JwtRoleSessionName=JDBC_TIP_SESSION;JwtWebIdentityToken=<token>;
  9. Wählen Sie OK und schließen Sie das Fenster. DBeaver beginnt nach diesem Schritt mit dem Laden Ihrer Metadaten und Sie sollten sehen, wie Ihre Kataloge, Datenbanken und Tabellen gefüllt werden.

    Anmerkung

    Wenn das Token einen JTI-Anspruch enthält und Sie Verbindung testen wählen, bevor Sie OK wählen, wird verhindert, dass derselbe JTI für den Tokenaustausch wiederverwendet wird. Weitere Informationen finden Sie unter Voraussetzungen und Überlegungen für vertrauenswürdige Token-Aussteller. Um dies zu handhaben, implementiert JDBC einen In-Memory-Cache, dessen Lebenszyklus von der Haupttreiber-Instance abhängt. Für ODBC ist optional ein Dateicache vorhanden, mit dem temporäre Anmeldeinformationen zwischengespeichert und wiederverwendet werden können, um die Anzahl der Webidentitätstoken zu reduzieren, die während des Sitzungslebenszyklus verwendet werden.

  10. Öffnen Sie den SQL-Abfrage-Editor und starten Sie die Ausführung Ihrer Abfragen. Sehen Sie sich die Cloudtrail-Protokolle an, um die weitergegebene Identität des Benutzers zu überprüfen.