Tutorial: Konfigurieren Sie den Verbundzugriff für Okta-Benutzer auf Athena mithilfe von Lake Formation und JDBC - 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.

Tutorial: Konfigurieren Sie den Verbundzugriff für Okta-Benutzer auf Athena mithilfe von Lake Formation und JDBC

Dieses Tutorial zeigt Ihnen, wie Sie Okta AWS Lake Formation, AWS Identity and Access Management Berechtigungen und den Athena JDBC-Treiber konfigurieren, um die SAML-basierte Verbundnutzung von Athena zu ermöglichen. Lake Formation bietet eine differenzierte Zugriffssteuerung über die Daten, die in Athena für den SAML-basierten Benutzer verfügbar sind. Um diese Konfiguration einzurichten, verwendet das Tutorial die Okta-Entwicklerkonsole, die AWS IAM- und Lake Formation Formation-Konsolen sowie das Workbench/J SQL-Tool.

Voraussetzungen

In diesem Tutorial wird davon ausgegangen, dass Sie Folgendes gemacht haben:

Schritt 1: Erstellen eines Okta-Kontos

In diesem Tutorial wird Okta als SAML-basierten Identitätsanbieter verwendet. Wenn Sie noch kein Okta-Konto besitzen, können Sie ein kostenloses erstellen. Ein Okta-Konto ist erforderlich, damit Sie eine Okta-Anwendung für die SAML-Authentifizierung erstellen können.

So erstellen Sie ein Okta-Konto
  1. Um Okta zu verwenden, navigieren Sie zur Anmeldeseite für Okta-Entwickler und erstellen Sie ein kostenloses Okta-Testkonto. Der Developer Edition Service ist bis zu den von Okta unter developer.okta.com/pricing angegebenen Grenzen kostenlos.

  2. Wenn Sie die Aktivierungs-E-Mail erhalten, aktivieren Sie Ihr Konto.

    Ihnen wird ein Okta-Domain-Name zugewiesen. Speichern Sie den Domain-Namen als Referenz. Später verwenden Sie den Domainnamen (<okta-idp-domain>) in der JDBC-Zeichenfolge, die eine Verbindung zu Athena herstellt.

Schritt 2: Hinzufügen von Benutzern und Gruppen zu Okta

In diesem Schritt verwenden Sie die Okta-Konsole, um die folgenden Aufgaben auszuführen:

  • Erstellen Sie zwei Okta-Benutzer.

  • Erstellen von zwei Okta-Gruppen

  • Fügen Sie jeder Okta-Gruppe einen Okta-Benutzer hinzu.

So fügen Sie Okta Benutzer hinzu
  1. Nachdem Sie Ihr Okta-Konto aktiviert haben, melden Sie sich als Administrator bei der zugewiesenen Okta-Domain an.

  2. Wählen Sie im linken Navigationsbereich Verzeichnis und dann Personen aus.

  3. Wählen Sie Person hinzufügen, um einen neuen Benutzer hinzuzufügen, der über den JDBC-Treiber auf Athena zugreift.

    Wählen Sie Person hinzufügen aus.
  4. Geben Sie im Dialogfeld Person hinzufügen die erforderlichen Informationen ein.

    • Geben Sie die Werte für Vorname und Nachname ein. In diesem Tutorial wird ein athena-okta-user verwendet.

    • Geben Sie einen Benutzernamen und eine primäre E-Mail-Adresse ein. In diesem Tutorial wird ein athena-okta-user@anycompany.com verwendet.

    • Wählen Sie für Passwort die Option Von Administrator festgelegt aus und geben Sie dann ein Passwort ein. In diesem Tutorial wird die Option für Benutzer muss Kennwort bei der ersten Anmeldung ändern deaktiviert; Ihre Sicherheitsanforderungen können variieren.

    Hinzufügen eines Benutzers zur Okta-Anwendung
  5. Wählen Sie Save and Add Another (Speichern und weitere hinzufügen).

  6. Geben Sie die Informationen für einen anderen Benutzer ein. In diesem Beispiel wird der Business Analyst-Benutzer hinzugefügt. athena-ba-user@anycompany.com

    Hinzufügen eines Benutzers zur Okta-Anwendung
  7. Wählen Sie Save (Speichern) aus.

Im folgenden Verfahren gewähren Sie über den Athena-JDBC-Treiber Zugriff für zwei Okta-Gruppen, indem Sie eine Gruppe „Business Analysts“ und eine Gruppe „Entwickler“ hinzufügen.

So fügen Sie Okta-Gruppen hinzu
  1. Wählen Sie im Okta-Navigationsbereich Verzeichnis und dann Gruppen aus.

  2. Wählen Sie auf der Seite Gruppen die Option Gruppe hinzufügen aus.

    Wählen Sie Add Group (Gruppe hinzufügen).
  3. Geben Sie im Dialogfeld Gruppe hinzufügen die erforderlichen Informationen ein.

    • Geben Sie unter Name lf-business-analyst ein.

    • Geben Sie als Gruppenbeschreibung den Wert einBusiness Analysts.

    Hinzufügen einer Okta-Gruppe
  4. Wählen Sie Add Group (Gruppe hinzufügen).

  5. Wählen Sie auf der Seite Gruppen erneut Gruppe hinzufügen aus. Dieses Mal geben Sie Informationen für die Entwicklergruppe ein.

  6. Geben Sie die erforderlichen Informationen ein.

    • Geben Sie unter Name lf-developer ein.

    • Geben Sie als Gruppenbeschreibung einDevelopers.

  7. Wählen Sie Add Group (Gruppe hinzufügen).

Nachdem Sie zwei Benutzer und zwei Gruppen haben, können Sie jeder Gruppe einen Benutzer hinzufügen.

So fügen Sie Benutzer Gruppen hinzu
  1. Wählen Sie auf der Seite Gruppen die soeben erstellte lf-developer-Gruppe aus. Sie fügen dieser Gruppe einen der Okta-Benutzer hinzu, die Sie als Entwickler erstellt haben.

    Wählen Sie lf-developer.
  2. Wählen Sie Manage People (Verwalten von Personen).

    Wählen Sie Manage People (Verwalten von Personen).
  3. Wählen Sie in der Liste „Keine Mitglieder“ die Option aus athena-okta-user.

    Wählen Sie einen Benutzer aus, der zur Mitgliederliste hinzugefügt werden soll.

    Der Eintrag für den Benutzer wird von der Liste Keine Mitglieder links in die Liste Mitglieder rechts verschoben.

    Okta-Benutzer zu einer Okta-Gruppe hinzugefügt.
  4. Wählen Sie Save (Speichern) aus.

  5. Wählen Sie Zurück zur Gruppe oder wählen Sie Verzeichnis und dann Gruppen aus.

  6. Wählen Sie die lf-business-analystGruppe aus.

  7. Wählen Sie Manage People (Verwalten von Personen).

  8. Fügen Sie die athena-ba-userzur Mitgliederliste der lf-business-analystGruppe hinzu und wählen Sie dann Speichern aus.

  9. Wählen Sie Zurück zur Gruppe oder wählen Sie Verzeichnis, Gruppen.

    Auf der Seite Gruppen wird jetzt angezeigt, dass jede Gruppe einen Okta-Benutzer hat.

    Jeder Okta-Gruppe in der Okta-Konsole wurde ein Benutzer hinzugefügt.

Schritt 3: Einrichten einer Okta-Anwendung für SAML-Authentifizierung

In diesem Schritt verwenden Sie die Okta-Entwicklerkonsole, um die folgenden Aufgaben auszuführen:

  • Fügen Sie eine SAML-Anwendung zur Verwendung mit AWS hinzu.

  • Weisen Sie die Anwendung dem Okta-Benutzer zu.

  • Weisen Sie die Anwendung einer Okta-Gruppe zu.

  • Laden Sie die resultierenden Metadaten des Identitätsanbieters zur späteren Verwendung mit AWS herunter.

So fügen Sie eine Anwendung für die SAML-Authentifizierung hinzu
  1. Wählen Sie im Okta-Navigationsbereich Anwendungen, Anwendungen, damit Sie eine Okta-Anwendung für die SAML-Authentifizierung bei Athena konfigurieren können.

  2. Klicken Sie auf Browse App Catalog (Durchsuchen von App-Katalog).

  3. Geben Sie in das Suchfeld Redshift ein.

  4. Wählen Sie Amazon Web Services Redshift. Die Okta-Anwendung in diesem Tutorial verwendet die vorhandene SAML-Integration für Amazon Redshift.

    Wählen Sie Amazon Web Services Redshift.
  5. Wählen Sie auf der Seite Amazon Web Services Redshift Hinzufügen aus, um eine SAML-basierte Anwendung für Amazon Redshift zu erstellen.

    Wählen Sie Hinzufügen, um eine SAML-basierte Anwendung zu erstellen.
  6. Geben Sie für Anwendungsmarkierung Athena-LakeFormation-Okta ein und wählen Sie dann Fertig aus.

    Geben Sie einen Namen für die Okta-Anwendung ein.

Nachdem Sie nun eine Okta-Anwendung erstellt haben, können Sie sie den von Ihnen erstellten Benutzern und Gruppen zuweisen.

So weisen Sie die Anwendung Benutzern und Gruppen zu
  1. Wählen Sie auf der Anwendungsseite die LakeFormationAthena-Okta-Anwendung aus.

  2. Wählen Sie auf der Registerkarte Zuweisungen Zuweisen, Personen zuweisen.

    Wählen Sie Zuweisen, Personen zuordnen.
  3. Suchen Sie im Dialogfeld „Personen Athena-LakeFormation-Okta zuweisen“ nach dem athena-okta-userBenutzer, den Sie zuvor erstellt haben.

  4. Wählen Sie Zuordnen, um den Benutzer der Anwendung zuzuordnen.

    Wählen Sie Assign (Zuweisen).
  5. Wählen Sie Save and Go Back (Speichern und zurückkehren).

  6. Wählen Sie Erledigt aus.

  7. Wählen Sie auf der Registerkarte Zuweisungen für die LakeFormationAthena-Okta-Anwendung die Optionen Zuweisen, Zu Gruppen zuweisen aus.

  8. Wählen Sie für „Zuweisenlf-business-analyst, um die LakeFormationAthena-Okta-Anwendung der lf-business-analystGruppe zuzuweisen, und wählen Sie dann „Fertig“.

    Zuweisen einer Okta-Anwendung zu einer Okta-Benutzergruppe

    Die Gruppe wird in der Liste der Gruppen für die Anwendung angezeigt.

    Die Okta-Anwendung wird der Okta-Gruppe zugewiesen.

Jetzt können Sie die Metadaten der Identitätsanbieteranwendung für die Verwendung mit AWS herunterladen.

So laden Sie die Anwendungsmetadaten herunter
  1. Wählen Sie die Registerkarte Sign On (Anmelden) der Okta-Anwendung und klicken Sie dann mit der rechten Maustaste auf Identity Provider metadata (Metadaten des Identitätsanbieters).

    Klicken Sie mit der rechten Maustaste auf Identity Provider metadata (Metadaten des Identitätsanbieters).
  2. Wählen Sie Save Link As (Link speichern unter), um die Metadaten des Identitätsanbieters im XML-Format in einer Datei zu speichern. Geben Sie ihm einen Namen, den Sie kennen (z. B. Athena-LakeFormation-idp-metadata.xml).

    Speichern der Metadaten des Identitätsanbieters

Schritt 4: Erstellen Sie einen AWS SAML-Identitätsanbieter und eine IAM-Rolle für den Zugriff auf Lake Formation

In diesem Schritt verwenden Sie die AWS Identity and Access Management (IAM) -Konsole, um die folgenden Aufgaben auszuführen:

  • Erstellen Sie einen Identitätsanbieter für AWS.

  • Erstellen Sie eine IAM-Rolle für den Lake-Formation-Zugriff.

  • Fügen Sie der Rolle die AmazonAthenaFullAccess verwaltete Richtlinie hinzu.

  • Fügen Sie der Rolle eine Richtlinie für Lake Formation und AWS Glue hinzu.

  • Fügen Sie der Rolle eine Richtlinie für Athena-Abfrageergebnisse hinzu.

Um einen AWS SAML-Identitätsanbieter zu erstellen
  1. Melden Sie sich bei der Amazon Web Services Services-Kontokonsole als Amazon Web Services Services-Kontoadministrator an und navigieren Sie zur IAM-Konsole (https://console.aws.amazon.com/iam/).

  2. Wählen Sie im Navigationsbereich Identitätsanbieter und dann Anbieter hinzufügen aus.

  3. Geben Sie auf dem Bildschirm Anbieter konfigurieren die folgenden Informationen ein:

    • Wählen Sie als Anbietertyp SAML aus.

    • Geben Sie für Anbietername AthenaLakeFormationOkta ein.

    • Verwenden Sie für das Metadatendokument die Option Datei auswählen, um die heruntergeladene XML-Metadatendatei des Identitätsanbieters (IdP) hochzuladen.

  4. Wählen Sie Add provider (Anbieter hinzufügen).

Als Nächstes erstellen Sie eine IAM-Rolle für den AWS Lake Formation Zugriff. Sie fügen der Rolle zwei Inline-Richtlinien hinzu. Eine Richtlinie gewährt Berechtigungen für den Zugriff auf Lake Formation und die AWS Glue APIs. Die andere Richtlinie bietet Zugriff auf Athena und den Speicherort der Athena-Abfrageergebnisse in Amazon S3.

Um eine IAM-Rolle für AWS Lake Formation den Zugriff zu erstellen
  1. Wählen Sie im Navigationsbereich der IAM-Konsole Rollen und dann Rolle erstellen aus.

  2. Führen Sie auf der Seite Rolle erstellen die folgenden Schritte aus:

    Konfigurieren einer IAM-Rolle für die Verwendung von SAML 2.0.
    1. Wählen Sie für Typ der vertrauenswürdigen Entität auswählen die Option SAML-2.0-Verbund aus.

    2. Wählen Sie für SAML-Anbieter die Option aus. AthenaLakeFormationOkta

    3. Wählen Sie für den SAML-Anbieter die Option Programmatisch und Zugriff zulassen aus. AWS Management Console

    4. Wählen Sie Next: Permissions (Weiter: Berechtigungen) aus.

  3. Geben Sie auf der Seite Berechtigungsrichtlinien anhängen für Filterrichtlinien Athena ein.

  4. Wählen Sie die AmazonAthenaFullAccessverwaltete Richtlinie aus und klicken Sie dann auf Weiter: Tags.

    Anhängen der AmazonAthenaFullAccessverwalteten Richtlinie an die IAM-Rolle.
  5. Wählen Sie auf der Seite Add tags (Tags hinzufügen) die Option Next: Review (Weiter: Prüfen) aus.

  6. Geben Sie auf der Seite Überprüfen in das Feld Rollenname einen Namen für die Rolle ein (z. B.Athena-LakeFormation-OktaRole), und wählen Sie dann Rolle erstellen aus.

    Geben Sie einen Namen für die IAM-Rolle ein.

Als Nächstes fügen Sie Inline-Richtlinien hinzu, die den Zugriff auf Lake Formation- AWS Glue APIs und Athena-Abfrageergebnisse in Amazon S3 ermöglichen.

Wenn Sie IAM-Richtlinien verwenden, stellen Sie sicher, dass Sie die bewährten IAM-Methoden befolgen. Weitere Informationen finden Sie unter Bewährte Methoden für die Sicherheit in IAM im IAM-Benutzerhandbuch.

Um der Rolle für Lake Formation eine Inline-Richtlinie hinzuzufügen und AWS Glue
  1. Wählen Sie aus der Liste der Rollen in der IAM-Konsole die neu erstellte Athena-LakeFormation-OktaRole.

  2. Wählen Sie auf der Seite Zusammenfassung für die Rolle auf der Registerkarte Berechtigungen die Option Inline-Richtlinie hinzufügen aus.

  3. Wählen Sie auf der Seite Create policy (Richtlinie erstellen) die Option JSON aus.

  4. Fügen Sie eine Inline-Richtlinie wie die folgende hinzu, die Zugriff auf Lake Formation und die bietet AWS Glue APIs.

    JSON
    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" } }
  5. Wählen Sie Richtlinie prüfen.

  6. Geben Sie unter Name einen Namen für die Richtlinie ein (z. B. LakeFormationGlueInlinePolicy).

  7. Wählen Sie Create Policy (Richtlinie erstellen) aus.

So fügen Sie der Rolle für den Speicherort der Athena Abfrageergebnisse eine Inline-Richtlinie hinzu
  1. Wählen Sie auf der Seite Zusammenfassung für die Athena-LakeFormation-OktaRole-Rolle auf der Registerkarte Berechtigungen die Option Inline-Richtlinie hinzufügen aus.

  2. Wählen Sie auf der Seite Create policy (Richtlinie erstellen) die Option JSON aus.

  3. Fügen Sie eine Inline-Richtlinie wie die folgende hinzu, die der Rolle Zugriff auf den Speicherort der Athena-Abfrageergebnisse ermöglicht. Ersetzen Sie die <athena-query-results-bucket> Platzhalter im Beispiel durch den Namen Ihres Amazon S3 S3-Buckets.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "AthenaQueryResultsPermissionsForS3", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<athena-query-results-bucket>", "arn:aws:s3:::<athena-query-results-bucket>/*" ] } ] }
  4. Wählen Sie Richtlinie prüfen.

  5. Geben Sie unter Name einen Namen für die Richtlinie ein (z. B. AthenaQueryResultsInlinePolicy).

  6. Wählen Sie Create Policy (Richtlinie erstellen) aus.

Als Nächstes kopieren Sie den ARN der Lake Formation-Zugriffsrolle und den ARN des von Ihnen erstellten SAML-Anbieters. Diese sind erforderlich, wenn Sie die Okta-SAML-Anwendung im nächsten Abschnitt des Lernprogramms konfigurieren.

So kopieren Sie den Rollen-ARN und den SAML-Identitätsanbieter-ARN
  1. Wählen Sie in der IAM-Konsole auf der Seite Zusammenfassung für die Athena-LakeFormation-OktaRole-Rolle das Symbol In Zwischenablage kopieren neben Rollen-ARN aus. Der ARN hat das folgende Format:

    arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
  2. Speichern Sie den vollständigen ARN sicher für einen späteren Verweis.

  3. Wählen Sie im Navigationsbereich der IAM-Konsole Identitätsanbieter aus.

  4. Wählen Sie den AthenaLakeFormationOktaAnbieter.

  5. Wählen Sie auf der Seite Zusammenfassung neben Anbieter-ARN das Symbol In Zwischenablage kopieren aus. Der ARN sollte wie folgt aussehen:

    arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta
  6. Speichern Sie den vollständigen ARN sicher für einen späteren Verweis.

Schritt 5: IAM-Rolle und SAML-Identitätsanbieter zur Okta-Anwendung hinzufügen

In diesem Schritt kehren Sie zur Okta-Entwicklerkonsole zurück und führen die folgenden Aufgaben aus:

  • Fügen Sie der Okta-Anwendung Benutzer- und Gruppen-Lake-Formation-URL-Attribute hinzu.

  • Fügen Sie der Okta-Anwendung den ARN für den Identitätsanbieter und den ARN für die IAM-Rolle hinzu.

  • Kopieren Sie die Okta-Anwendungs-ID. Die Okta-Anwendungs-ID ist im JDBC-Profil erforderlich, das eine Verbindung zu Athena herstellt.

So fügen Sie der Okta-Anwendung Benutzer- und Gruppen-URL-Attribute für Lake Formation hinzu
  1. Melden Sie sich bei der Okta-Entwicklerkonsole an.

  2. Wählen Sie die Registerkarte Anwendungen und dann die Athena-LakeFormation-Okta-Anwendung aus.

  3. Wählen Sie auf der Registerkarte Sign On (Anmelden) für die Anwendung und dann Edit (Bearbeiten).

    Bearbeiten Sie die Okta-Anwendung.
  4. Wählen Sie Attribute (optional), um es zu erweitern.

    Hinzufügen eines Benutzer-Lake-Formation-URL-Attributs zur Okta-Anwendung.
  5. Fügen Sie für Attributanweisungen (optional) das folgende Attribut hinzu:

    • Geben Sie unter Name https://lakeformation.amazon.com/SAML/Attributes/Username ein.

    • Geben Sie für Wert user.login ein

  6. Fügen Sie unter Gruppenattributanweisungen (optional) das folgende Attribut hinzu:

    • Geben Sie unter Name https://lakeformation.amazon.com/SAML/Attributes/Groups ein.

    • Geben Sie für Namensformat Basic ein

    • Wählen Sie für Filter die Option Entspricht Regex und geben Sie dann .* in das Filterfeld ein.

    Hinzufügen eines Gruppenattributs der Lake Formation zur Okta-Anwendung.
  7. Scrollen Sie nach unten zum Abschnitt Erweiterte Anmeldeeinstellungen, in dem Sie der Okta-Anwendung den Identitätsanbieter und die IAM-Rolle ARNs hinzufügen.

Um die Rolle ARNs für den Identitätsanbieter und die IAM-Rolle zur Okta-Anwendung hinzuzufügen
  1. Geben Sie für Idp-ARN und Rollen-ARN den AWS Identitätsanbieter-ARN und den Rollen-ARN als kommagetrennte Werte im Format<saml-arn>, ein. <role-arn> Die kombinierte Zeichenfolge sollte wie folgt aussehen:

    arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta,arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
    Eingabe des Identitätsanbieter-ARN und des IAM-Rollen-ARN in der Okta-Anwendung.
  2. Wählen Sie Save (Speichern) aus.

Als Nächstes kopieren Sie die Okta-Anwendungs-ID. Sie benötigen dies später für die JDBC-Zeichenfolge, die sich mit Athena verbindet.

So suchen und kopieren Sie die Okta-Anwendung-ID
  1. Wählen Sie das Symbol Allgemein der Okta-Anwendung.

    Wählen Sie das Symbol Allgemein der Okta-Anwendung.
  2. Scrollen Sie nach unten zum Abschnitt App-Einbettungslink.

  3. Kopieren Sie von Embed Link (Link einbetten) aus den Okta-Anwendungs-ID-Teil der URL und speichern Sie ihn sicher. Die Okta-Anwendungs-ID ist der Teil der URL nach amazon_aws_redshift/, aber vor dem nächsten Schrägstrich. Wenn die URL beispielsweise amazon_aws_redshift/aaa/bbb enthält, lautet die Anwendungs-ID aaa.

    Kopieren Sie die ID der Okta-Anwendung.
Anmerkung

Sie können den Einbettungslink nicht verwenden, um sich direkt bei der Athena-Konsole anzumelden, um Datenbanken anzuzeigen. Die Lake-Formation-Berechtigungen für SAML-Benutzer und -Gruppen werden nur erkannt, wenn Sie den JDBC- oder ODBC-Treiber verwenden, um Anfragen an Athena zu senden. Um die Datenbanken anzuzeigen, können Sie das Workbench/J SQL-Tool verwenden, das den JDBC-Treiber verwendet, um eine Verbindung zu Athena herzustellen. Das Workbench/J SQL-Tool wird unter behandelt. Schritt 7: Überprüfen des Zugriffs über den Athena-JDBC-Client

Schritt 6: Erteilen Sie Benutzer- und Gruppenberechtigungen über AWS Lake Formation

In diesem Schritt verwenden Sie die Lake-Formation-Konsole, um dem SAML-Benutzer und der SAML-Gruppe Berechtigungen für eine Tabelle zu erteilen. Sie können folgende Aufgaben ausführen:

  • Geben Sie den ARN des Okta SAML-Benutzers und die zugehörigen Benutzerberechtigungen für die Tabelle an.

  • Geben Sie den ARN der Okta SAML-Gruppe und die zugehörigen Gruppenberechtigungen für die Tabelle an.

  • Überprüfen Sie die Berechtigungen, die Sie erteilt haben.

So erteilen Sie dem Okta-Benutzer Berechtigungen in Lake Formation
  1. Melden Sie sich als Data-Lake-Administrator bei der AWS Management Console an.

  2. Öffnen Sie die Lake Formation Formation-Konsole unter https://console.aws.amazon.com/lakeformation/.

  3. Wählen Sie im Navigationsbereich Tabellen aus, und wählen Sie dann die Tabelle aus, für die Sie Berechtigungen erteilen möchten. Dieses Tutorial verwendet die nyctaxi-Tabelle aus der tripdb-Datenbank.

    Wählen Sie die Tabelle aus, für die Sie Berechtigungen erteilen möchten.
  4. Wählen Sie unter Aktionen die Option Gewähren aus.

    Wählen Sie Gewähren.
  5. Geben Sie im Dialogfeld Berechtigungen gewähren die folgenden Informationen ein:

    1. Geben Sie unter SAML- und QuickSight Amazon-Benutzer und -Gruppen den Okta-SAML-Benutzer-ARN im folgenden Format ein:

      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:user/<athena-okta-user>@<anycompany.com>
    2. Wählen Sie für Spalten für Filtertyp auswählen und optional Spalten einschließen oder Spalten ausschließen aus.

    3. Verwenden Sie das Dropdown-Menü Eine oder mehrere Spalten auswählen unter dem Filter, um die Spalten anzugeben, die Sie für den Benutzer ein- oder ausschließen möchten.

    4. Wählen Sie für Tabellenberechtigungen die Option Auswählen aus. Dieses Tutorial gewährt nur die SELECT-Berechtigung; Ihre Anforderungen können variieren.

      Erteilen von Berechtigungen auf Tabellen- und Spaltenebene an einen Okta-Benutzer.
  6. Wählen Sie Gewähren.

Jetzt führen Sie ähnliche Schritte für die Okta-Gruppe aus.

So erteilen Sie Berechtigungen in Lake Formation für die Okta-Gruppe
  1. Stellen Sie auf der Seite Tabellen der Lake-Formation-Konsole sicher, dass die nyctaxi-Tabelle noch ausgewählt ist.

  2. Wählen Sie unter Aktionen die Option Gewähren aus.

  3. Geben Sie im Dialogfeld Berechtigungen gewähren die folgenden Informationen ein:

    1. Geben Sie unter SAML- und QuickSight Amazon-Benutzer und -Gruppen den Okta-SAML-Gruppen-ARN im folgenden Format ein:

      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:group/lf-business-analyst
    2. Wählen Sie für Spalten, Filtertyp auswählen, Spalten einschließen aus.

    3. Wählen Sie für Eine oder mehrere Spalten auswählen die ersten drei Spalten der Tabelle aus.

    4. Wählen Sie für Tabellenberechtigungen die zu erteilenden spezifischen Zugriffsberechtigungen aus. Dieses Tutorial gewährt nur die SELECT-Berechtigung; Ihre Anforderungen können variieren.

      Erteilen von Tabellenberechtigungen für eine Okta-Gruppe
  4. Wählen Sie Gewähren.

  5. Um die von Ihnen erteilten Berechtigungen zu überprüfen, wählen Sie Aktionen, Berechtigungen anzeigen.

    Wählen Sie Berechtigungen anzeigen aus, um die erteilten Berechtigungen zu überprüfen.

    Auf der Seite mit den Datenberechtigungen für die nyctaxi Tabelle werden die Berechtigungen für athena-okta-userund die Gruppe angezeigt. lf-business-analyst

    Anzeigen der Berechtigungen, die dem Okta-Benutzer und der Gruppe erteilt wurden.

Schritt 7: Überprüfen des Zugriffs über den Athena-JDBC-Client

Jetzt können Sie einen JDBC-Client verwenden, um eine Testverbindung mit Athena als Okta-SAML-Benutzer durchzuführen.

In diesem Abschnitt führen Sie die folgenden Aufgaben aus:

  • Vorbereiten des Testclients – Laden Sie den Athena-JDBC-Treiber herunter, installieren Sie SQL Workbench und fügen Sie den Treiber zu Workbench hinzu. In diesem Lernprogramm wird SQL Workbench verwendet, um über Okta-Authentifizierung auf Athena zuzugreifen und Lake-Formation-Berechtigungen zu überprüfen.

  • In SQL Workbench:

    • Erstellen Sie eine Verbindung für den Athena-Okta-Benutzer.

    • Führen Sie Testabfragen als Athena-Okta-Benutzer aus.

    • Erstellen und testen Sie eine Verbindung für den Benutzer des Business Analyst.

  • Fügen Sie in der Okta-Konsole den Business-Analyst-Benutzer der Entwicklergruppe hinzu.

  • Konfigurieren Sie in der Lake-Formation-Konsole Tabellenberechtigungen für die Entwicklergruppe.

  • Führen Sie in SQL Workbench Testabfragen als Business-Analyst-Benutzer aus und überprüfen Sie, wie sich die Änderung der Berechtigungen auf die Ergebnisse auswirkt.

So bereiten Sie den Test-Client vor
  1. Laden Sie den Lake-Formation-kompatiblen Athena-JDBC-Treiber (2.0.14 oder höher) von Connect zu Amazon Athena her mit JDBC herunter und extrahieren Sie ihn.

  2. Laden Sie das kostenlose SQL Workbench/J SQL-Abfragetool herunter und installieren Sie es, das unter einer modifizierten Apache-2.0-Lizenz verfügbar ist.

  3. Wählen Sie in SQL Workbench die Optionen Datei und Treiber verwalten aus.

    Wählen Sie Manage Drivers aus.
  4. Führen Sie im Dialogfeld Treiber verwalten die folgenden Schritte aus:

    1. Wählen Sie das Symbol für den neuen Treiber.

    2. Geben Sie unter Name Athena ein.

    3. Navigieren Sie für Bibliothek zu der .jar-Simba-Athena-JDBC-Datei, die Sie gerade heruntergeladen haben und wählen Sie sie aus.

    4. Wählen Sie OK.

      Hinzufügen des Athena-JDBC-Treibers zu SQL Workbench.

Sie können nun eine Verbindung für den Athena-Okta-Benutzer erstellen und testen.

So erstellen Sie eine Verbindung für den Okta-Benutzer
  1. Wählen Sie Datei, Verbindungsfenster.

    Wählen Sie Verbindungsfenster.
  2. Erstellen Sie im Dialogfeld Verbindungsprofil eine Verbindung, indem Sie die folgenden Informationen eingeben:

    • Geben Sie im Feld Name Athena_Okta_User_Connection ein.

    • Wählen Sie als Treiber den Simba-Athena-JDBC-Treiber aus.

    • Führen Sie für URL einen der folgenden Schritte aus:

      • Um eine Verbindungs-URL zu verwenden, geben Sie eine einzeilige Verbindungszeichenfolge ein. Das folgende Beispiel fügt Zeilenumbrüche für eine bessere Lesbarkeit hinzu.

        jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-okta-user@anycompany.com; password=password; idp_host=okta-idp-domain; App_ID=okta-app-id; SSL_Insecure=true; LakeFormationEnabled=true;
      • Gehen Sie wie folgt vor, um eine AWS profilbasierte URL zu verwenden:

        1. Konfigurieren Sie ein AWS Profil mit einer AWS Anmeldeinformationsdatei wie im folgenden Beispiel.

          [athena_lf_dev] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domain app_id=okta-app-id uid=athena-okta-user@anycompany.com pwd=password
        2. Geben Sie für URL eine einzeilige Verbindungszeichenfolge wie im folgenden Beispiel ein. Das Beispiel fügt Zeilenumbrüche für eine bessere Lesbarkeit hinzu.

          jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_dev; SSL_Insecure=true; LakeFormationEnabled=true;

      Beachten Sie, dass diese Beispiele grundlegende Darstellungen der URL sind, die zum Herstellen einer Verbindung mit Athena erforderlich ist. Eine vollständige Liste der in der URL unterstützten Parameter finden Sie in JDBC-Dokumentation.

    Das folgende Image zeigt ein SQL-Workbench-Verbindungsprofil, das eine Verbindungs-URL verwendet.

    Ein Verbindungsprofil in SQL Workbench.

Nachdem Sie eine Verbindung für den Okta-Benutzer hergestellt haben, können Sie diese testen, indem Sie einige Daten abrufen.

So testen Sie die Verbindung für den Okta-Benutzer
  1. Wählen Sie Test (Testen) und überprüfen Sie dann, ob die Verbindung erfolgreich ist.

  2. Führen Sie im Fenster SQL-Workbench-Anweisung den folgenden SQL-Befehl DESCRIBE aus. Stellen Sie sicher, dass alle Spalten angezeigt werden.

    DESCRIBE "tripdb"."nyctaxi"
    Alle Spalten werden angezeigt.
  3. Führen Sie im Fenster SQL-Workbench-Anweisung den folgenden SQL-Befehl SELECT aus. Stellen Sie sicher, dass alle Spalten angezeigt werden.

    SELECT * FROM tripdb.nyctaxi LIMIT 5
    Stellen Sie sicher, dass alle Spalten angezeigt werden.

Als Nächstes überprüfen Sie athena-ba-user, ob der als Mitglied der lf-business-analystGruppe nur Zugriff auf die ersten drei Spalten der Tabelle hat, die Sie zuvor in Lake Formation angegeben haben.

Um den Zugriff für die zu überprüfen athena-ba-user
  1. Erstellen Sie in SQL Workbench im Dialogfeld Verbindungsprofil ein weiteres Verbindungsprofil.

    • Geben Sie als Verbindungsprofilnamen Athena_Okta_Group_Connection ein.

    • Wählen Sie für Treiber den Simba-Athena-JDBC-Treiber aus.

    • Führen Sie für URL einen der folgenden Schritte aus:

      • Um eine Verbindungs-URL zu verwenden, geben Sie eine einzeilige Verbindungszeichenfolge ein. Das folgende Beispiel fügt Zeilenumbrüche für eine bessere Lesbarkeit hinzu.

        jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-ba-user@anycompany.com; password=password; idp_host=okta-idp-domain; App_ID=okta-application-id; SSL_Insecure=true; LakeFormationEnabled=true;
      • Gehen Sie wie folgt vor, um eine AWS profilbasierte URL zu verwenden:

        1. Konfigurieren Sie ein AWS Profil mit einer Anmeldeinformationsdatei wie im folgenden Beispiel.

          [athena_lf_ba] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domain app_id=okta-application-id uid=athena-ba-user@anycompany.com pwd=password
        2. Geben Sie für URL eine einzeilige Verbindungszeichenfolge wie im Folgenden ein. Das Beispiel fügt Zeilenumbrüche für eine bessere Lesbarkeit hinzu.

          jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_ba; SSL_Insecure=true; LakeFormationEnabled=true;
  2. Wählen Sie Testen, um zu bestätigen, dass die Verbindung erfolgreich ist.

  3. Führen Sie im Fenster SQL-Anweisung dieselben DESCRIBE- und SELECT-SQL-Befehle wie zuvor aus, und überprüfen Sie die Ergebnisse.

    Da athena-ba-useres ein Mitglied der lf-business-analystGruppe ist, werden nur die ersten drei Spalten zurückgegeben, die Sie in der Lake Formation Formation-Konsole angegeben haben.

    Es werden nur die ersten drei Spalten zurückgegeben.
    Daten aus den ersten drei Spalten.

Als nächstes kehren Sie zur Okta-Konsole zurück, um den athena-ba-user zur lf-developer-Okta-Gruppe hinzuzufügen.

Um das athena-ba-user zur Gruppe lf-developer hinzuzufügen
  1. Melden Sie sich bei der Okta-Konsole als Administrator der zugewiesenen Okta-Domain an.

  2. Wählen Sie Verzeichnis und dann Gruppen aus.

  3. Wählen Sie auf der Seite Gruppen die Gruppe lf-developer aus.

    Wählen Sie die lf-developer-Gruppe.
  4. Wählen Sie Manage People (Verwalten von Personen).

  5. Wählen Sie aus der Liste „Keine Mitglieder“ die aus, athena-ba-userum sie der Gruppe lf-developer hinzuzufügen.

  6. Wählen Sie Speichern.

Nun kehren Sie zur Lake Formation-Konsole zurück, um die Tabellenberechtigungen für die lf-developer-Gruppe zu konfigurieren.

Um Tabellenberechtigungen für die zu konfigurieren lf-developer-group
  1. Melden Sie sich als Data-Lake-Administrator bei der Lake-Formation-Konsole an.

  2. Wählen Sie im Navigationsbereich Tables (Tabellen) aus.

  3. Wählen Sie die nyctaxi-Tabelle aus.

  4. Wählen Sie Aktionen, Gewähren.

  5. Geben Sie im Dialogfeld Berechtigungen gewähren die folgenden Informationen ein:

    • Geben Sie für SAML- und QuickSight Amazon-Benutzer und -Gruppen den Okta SAML lf-developer group ARN im folgenden Format ein:

    • Wählen Sie für Spalten, Filtertyp auswählen, Spalten einschließen aus.

    • Wählen Sie die Spalte trip_type aus.

    • Wählen Sie für Tabellenberechtigungen die Option Auswählen aus.

  6. Wählen Sie Gewähren.

Jetzt können Sie SQL Workbench verwenden, um die Änderung der Berechtigungen für die lf-developer-Gruppe zu überprüfen. Die Änderung sollte sich in den Daten widerspiegeln athena-ba-user, die jetzt Mitglied der LF-Developer-Gruppe sind.

Um die Änderung der Berechtigungen für zu überprüfen athena-ba-user
  1. Schließen Sie das SQL-Workbench-Programm und öffnen Sie es dann erneut.

  2. Connect zum Profil für her athena-ba-user.

  3. Geben Sie im Anweisungsfenster dieselben SQL-Anweisungen aus, die Sie zuvor ausgeführt haben:

    Dieses Mal wird die Spalte trip_type angezeigt.

    Die vierte Spalte ist für die Abfrage verfügbar.

    Da athena-ba-useres jetzt sowohl Mitglied von lf-developer als auch von lf-business-analystgroups ist, bestimmt die Kombination der Lake Formation Formation-Berechtigungen für diese Gruppen, welche Spalten zurückgegeben werden.

    Die vierte Spalte in den Datenergebnissen.

Schlussfolgerung

In diesem Tutorial haben Sie die Athena-Integration AWS Lake Formation mit Okta als SAML-Anbieter konfiguriert. Sie haben Lake Formation und IAM verwendet, um die Ressourcen zu steuern, die dem SAML-Benutzer in Ihrem Data AWS Glue Lake-Datenkatalog zur Verfügung stehen.

Weitere Informationen finden Sie in den folgenden Ressourcen.