In dieser Schritt-für-Schritt-Anleitung erfahren wir, wie man die SSO-Authentifizierung mit Redshift und AWS IAM Identity Center einrichtet, um die Sicherheit zu erhöhen und den Benutzerzugang zu erleichtern.

Redshift SSO.drawio Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 1

Verwendete Quellen:

Begriffslexikon:

BegriffBedeutung
Identity Center KontoDas Konto, in dem das IAM Identity Center konfiguriert ist.
Redshift KontoDas Unterkonto des Identity Center Kontos, das den Redshift-Cluster enthält, mit dem wir eine Verbindung herstellen möchten.
IDPIdentity Provider

Was ist Redshift?

AWS Redshift ist ein vollständig verwalteter Data-Warehouse-Dienst, der von Amazon Web Services (AWS) bereitgestellt wird.
Es ist darauf ausgelegt, groß angelegte Datenanalyse-Workloads zu bewältigen und ermöglicht es Organisationen, große Datenmengen schnell und kostengünstig zu analysieren.

Was ist IAM Identity Center?

IAM Identity Center bietet einen zentralen Ort, an dem Sie Arbeitsbenutzer erstellen oder verbinden und deren Zugriff auf alle AWS-Konten und Anwendungen zentral verwalten können.
Sie können Mehrkontenberechtigungen verwenden, um Ihren Arbeitsbenutzern Zugriff auf AWS-Konten zu gewähren.

Warum SSO?

SSO verringert die Anzahl der Angriffsflächen, da sich Benutzer nur einmal täglich anmelden und nur ein Satz Anmeldeinformationen verwenden.
Die Reduzierung auf einen Satz Anmeldeinformationen verbessert die Sicherheit des Unternehmens. Wenn Mitarbeiter separate Passwörter für jede App verwenden müssen, tun sie dies normalerweise nicht.

Voraussetzungen

  1. Vorkonfiguriertes IAM Identity Center → Erste Schritte – AWS IAM Identity Center.
  2. Vorkonfigurierter Redshift-Cluster mit administrativem Zugriff.
  3. Benutzername und Passwort der Identitätsquelle (Okta, PingOne, etc.).
  4. JetBrains DataGrip installiert (kann kostenlos sein).

Schritt für Schritt:

Identity Center-Anwendung konfigurieren

Unser erster Schritt wird sein, eine neue AWS Identity Center-Anwendung im Identity Center Konto zu erstellen, die als Hauptkanal zwischen Benutzern und dem Redshift-Cluster verwendet wird.

  1. Klicken Sie im Seitenbereich des IAM Identity Centers auf „Anwendungen“.
    Screenshot 2566 07 02 at 15.25.46 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 2
  2. Klicken Sie in der oberen rechten Ecke auf „Anwendung hinzufügen“.
    Screenshot 2566 07 02 at 15.27.18 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 3
  3. Wählen Sie „benutzerdefinierte SAML 2.0-Anwendung hinzufügen“ und klicken Sie auf „Weiter“.
    Screenshot 2566 07 02 at 15.28.44 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 4
  4. Legen Sie einen geeigneten Anzeigenamen fest, wir nennen unsere Anwendung „Redshift-ReadOnly“, da diese Anwendung verwendet wird, um Lesezugriff auf die Clusterdaten zu erhalten.
    Screenshot 2566 07 02 at 15.32.25 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 5
  5. Laden Sie die SAML-Metadatendatei des Identity Centers herunter, wir werden sie später verwenden, um unsere Redshift-Kontoanwendung zu konfigurieren.
    Screenshot 2566 07 02 at 15.33.39 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 6
  6. Kopieren Sie die Anmelde-URL der Anwendung URL, da wir sie später benötigen.
  7. Als nächstes konfigurieren wir die SAML-Anwendungs-ACS (auch bekannt als Assertion Consumer Service).
    Kurz gesagt, ACS ist der Ort, an den die SAML-Anwendungsantwort gesendet wird.

    Da wir den AWS Redshift JDBC-Treiber verwenden werden, um eine Verbindung zu unserem Redshift-Cluster herzustellen, müssen wir die Anwendungs-ACS auf http://localhost:7890/redshift/ setzen – da der JDBC-Treiber standardmäßig einen Server auf Port 7890 startet.
    Screenshot 2566 07 02 at 15.56.40 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 7ab00f622 901e 48a6 af15 55b11fe407f4#media blob url=true&id=a1039895 cc77 4376 8887 687b0a94ffae&collection=contentId Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 8
  8. Um die SAML-Anwendungsassertion nur auf Redshift zu beschränken, konfigurieren wir das Feld „Anwendungs-SAML-Zielgruppe“ auf urn:amazon:webservices:redshift.
    Screenshot 2566 07 02 at 15.58.17 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 9

Identity Provider erstellen

Nachdem wir unsere Redshift-ReadOnly-Anwendung im Identity Center Konto erstellt haben, müssen wir einen Identity Provider konfigurieren, der von der Redshift-ReadOnly-Anwendung verwendet wird, um eine Verbindung zum Redshift-Konto-Redshift-Cluster herzustellen.

  1. Klicken Sie im Seitenbereich des IAM-Dashboards Ihres Redshift-Kontos auf Identity Providers.
    Screenshot 2566 07 02 at 16.19.31 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 10
  2. Klicken Sie in der oberen rechten Ecke auf „Provider hinzufügen“.
    Screenshot 2566 07 02 at 16.21.05 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 11
  3. Füllen Sie die Details für den neuen IDP aus:
    1. Setzen Sie den „Provider-Namen“ auf Redshift-ReadOnly (gleich wie unsere zuvor konfigurierte Anwendung).
    2. Laden Sie die Metadatendatei hoch, die wir während des Konfigurationsprozesses unserer IAM Identity Center-Anwendung heruntergeladen haben.f2db2cb3 28d0 4578 ac63 f813a350a2d9#media blob url=true&id=af2a9aac ed5d 4c7c 8aea e91254cfdeaf&collection=contentId Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 12 Klicken Sie auf „Provider hinzufügen“ und beenden Sie.
      Screenshot 2566 07 02 at 16.22.59 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 13
  4. Gehen Sie zur IDP-Beschreibungsseite und kopieren Sie die IDP ARN, wir werden sie später verwenden.
    Screenshot 2566 07 02 at 17.04.43 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 140a06764a c351 43f3 810a 15da912d7c05#media blob url=true&id=39497b0d 7a31 4add 8c83 107db8043f05&collection=contentId Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 15

IAM-Rolle und -Richtlinie erstellen

Nachdem wir den Identity Provider erstellt haben, der von unserer IAM Identity Center-Anwendung verwendet wird, können wir die Rolle erstellen, die verwendet wird, um eine Verbindung zum Redshift-Cluster herzustellen.

  1. Klicken Sie im Seitenbereich des IAM-Dashboards Ihres Redshift-Kontos auf Rollen.
    Screenshot 2566 07 02 at 16.14.15 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 16
  2. Klicken Sie in der oberen rechten Ecke auf „Rolle erstellen“.
    Screenshot 2566 07 02 at 16.15.37 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 17
  3. Erstellen Sie eine vertrauenswürdige Entität vom Typ SAML 2.0-Föderation und setzen Sie Folgendes:
    1. Setzen Sie den IDP auf den „Redshift-ReadOnly“-IDP, den wir zuvor erstellt haben.
    2. Wählen Sie die Option „Nur programmgesteuerten Zugriff zulassen“ und setzen Sie:
      Attribut: „SAML:aud“ → Festlegung, welche Zielgruppe diese Rolle übernehmen kann.
      Wert: „http://localhost:7890/redshift/ → Festlegung der Zielgruppe auf unseren lokalen Redshift JDBC-Treiber-Server (wie im ersten Abschnitt erklärt).
      Screenshot 2566 07 02 at 16.44.02 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 18
      Klicken Sie auf „Weiter“.
  4. Klicken Sie auf „Richtlinie erstellen“ und ein neuer Tab wird geöffnet.5f413ee0 9082 48fe bbf9 1266e384f039#media blob url=true&id=f54050e8 48e9 4c67 8e16 34cb159b53b5&collection=contentId Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 19
  5. Wählen Sie „JSON“.38e95090 ae9b 4366 9c1e 4c24cab89231#media blob url=true&id=75587102 9ee1 4ce6 abd5 c83d2c872050&collection=contentId Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 20
  6. Fügen Sie im Richtlinien-Editor-Panel die folgende Richtlinienanweisung ein und bearbeiten Sie die folgenden Werte im „Ressourcen“-Bereich, um sie an Ihre eigenen anzupassen: <region>, <account>, <clusterName>.
    				
    					{
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "redshift:CreateClusterUser",
                    "redshift:JoinGroup",
                    "redshift:GetClusterCredentials",
                    "redshift:ListSchemas",
                    "redshift:ListTables",
                    "redshift:ListDatabases",
                    "redshift:ExecuteQuery",
                    "redshift:FetchResults",
                    "redshift:CancelQuery",
                    "redshift:DescribeClusters",
                    "redshift:DescribeQuery",
                    "redshift:DescribeTable"
                ],
                "Resource": [
                    "arn:aws:redshift:<region>:<account>:cluster:<clusterName>",
                    "arn:aws:redshift:<region>:<account>:dbuser:<clusterName>/${redshift:DbUser}",
                    "arn:aws:redshift:<region>:<account>:dbname:<clusterName>/${redshift:DbName}",
                    "arn:aws:redshift:<region>:<account>:dbgroup:<clusterName>/bi_users_group",
                ]
            }
        ]
    }
    				
    			

  7. Benennen Sie die Richtlinie „Redshift-ReadOnly-policy“ und klicken Sie auf „Create policy“.638f1d27 23e5 4a2f 8351 3f13ebf6a7f1#media blob url=true&id=e6d9b9f7 ff16 4b5a 851e 162a99c4d39d&collection=contentId Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 21
    Screenshot 2566 07 02 at 16.55.08 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 22
  8. Gehen Sie zurück zum ursprünglichen Tab, in dem wir begonnen haben, unsere IAM-Rolle zu erstellen
    → klicken Sie auf Aktualisieren → geben Sie „Redshift-ReadOnly-policy“ in die Suchleiste ein → markieren Sie die Richtlinie „Redshift-ReadOnly-policy“ → klicken Sie auf „Next“.
    Screenshot 2566 07 02 at 16.56.59 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 23
  9. Benennen Sie die Rolle „Redshift-ReadOnly-role“ und klicken Sie in der unteren rechten Ecke auf „Create role“.
    Screenshot 2566 07 02 at 16.59.54 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 24f0080f98 f453 40bb 83c7 24e81210a9f2#media blob url=true&id=7ece7e5c f65e 4144 9c4a e4856fa6e8db&collection=contentId Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 25
  10. Jetzt, da wir die IAM-Rolle erstellt haben, gehen Sie zu ihrer Beschreibungsseite und kopieren Sie die Rollen-ARN, die wir später verwenden werden.
    Screenshot 2566 07 02 at 17.08.58 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 26

Konfigurieren Sie die IAM Identity Center Anwendungsattribute

Um unsere Anwendung so zu konfigurieren, dass sie mit Redshift funktioniert, müssen wir einige Anwendungsattribute konfigurieren, die ihr „wie man sich verbindet“ anleiten.

  1. Gehen Sie im IAM Identity Center zum Anwendungsbereich und wählen Sie die Anwendung aus, die wir zuvor erstellt haben.
    Screenshot 2566 07 02 at 17.21.15 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 27
  2. Weisen Sie Benutzer und Gruppen zu, denen Sie Berechtigungen für diese Anwendung erteilen möchten → Weisen Sie Benutzern Zugriff auf Anwendungen in der IAM Identity Center-Konsole zu – AWS IAM Identity Center (Nachfolger von AWS Single Sign-On).
    Screenshot 2566 07 02 at 17.25.48 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 28
  3. Klicken Sie auf „Attributzuordnungen“.
    Screenshot 2566 07 02 at 17.27.54 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 29
  4. Setzen Sie die Attribute gemäß der folgenden Tabelle und ersetzen Sie die <role_arn> & <idp_arn> Platzhalter durch die ARNs, die Sie in den vorherigen Schritten kopiert haben:
AttributWertErklärung
Subjekt (Standardattribut)${user:email}Das verwendete Subjekt.
https://aws.amazon.com/SAML/Attributes/RoleSessionName${user:email}Der gegen den Cluster erstellte Sitzungsname.
https://redshift.amazon.com/SAML/Attributes/AutoCreatetrueKonfigurieren Sie die Anwendung so, dass der Redshift-Benutzer bei der Authentifizierung automatisch erstellt wird.
https://aws.amazon.com/SAML/Attributes/Role,Die zu verwendende IAM-Rolle und IDP zur Verbindung mit Redshift.
https://redshift.amazon.com/SAML/Attributes/DbUser${user:email}Der zu erstellende DB-Benutzername.
https://redshift.amazon.com/SAML/Attributes/DbGroupsreadonlyDie DB-Gruppe, der der neu erstellte Benutzer zugewiesen werden soll.
Screenshot 2566 07 02 at 17.38.32 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 30

Klicken Sie auf „Änderungen speichern“.

Erstellen Sie die Redshift-Gruppe & Berechtigungen erteilen

In diesem Schritt konfigurieren wir die readonly Redshift-Gruppe (wie in den Anwendungsattributen im vorherigen Schritt definiert), der jeder Benutzer zugewiesen wird, wenn er sich über die Anwendung verbindet.

  1. Verbinden Sie sich mit Ihrem Redshift-Cluster mit einem privilegierten Benutzer (Superuser).
  2. Führen Sie das folgende SQL-Skript aus, um die readonly Gruppe zu erstellen und ihr read Berechtigungen für das öffentliche Schema (das Standardschema) zuzuweisen.
    				
    					create group readonly;
    grant usage on schema public to group readonly;
    grant select on all tables in schema public to group readonly;
    				
    			

Konfigurieren Sie die DataGrip-Client-Datenquelle

:tada: Wir sind fertig eingerichtet und endlich bereit, unsere Früchte zu ernten! :tada:
In diesem Schritt konfigurieren wir eine DataGrip-Datenquelle, die als Verbindung zwischen uns und dem Redshift-Cluster verwendet wird.

  1. Öffnen Sie DataGrip und erstellen Sie eine neue Redshift-Datenquelle.
    Screenshot 2566 07 02 at 17.52.46 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 31
  2. Ein Datenquellenassistent wird geöffnet, um die Verbindung zu konfigurieren. Setzen Sie die folgenden Attribute:
    1. Name: Redshift ReadOnly SSO.
    2. Host: Ihr Redshift-Server-Endpunkt.
    3. Benutzer: Ihr email-Identifikator (wird als Redshift-DB-Benutzer verwendet).
    4. Passwort: das Passwort, das Sie in Ihrer Identitätsquelle (Okta, PingOne usw.) konfiguriert haben.
    5. Datenbank: die Datenbank, mit der Sie sich verbinden möchten.
    6. URL: die URL wird größtenteils an diesem Punkt konfiguriert sein (aufgrund der DataGrip-Autovervollständigung), alles, was Sie noch tun müssen, ist das JDBC-URL-Präfix von jdbc:redshift:// zu jdbc:redshift:iam:// zu ändern.
      Screenshot 2566 07 02 at 17.57.29 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 32
  3. Gehen Sie zum Advanced Tab und konfigurieren Sie diese 3 Attribute:
    1. plugin_name: com.amazon.redshift.plugin.BrowserSamlCredentialsProvider – bereits definiert, also bearbeiten Sie es.
    2. idp_reponse_timeout: 60 – erstellen Sie einen neuen Wert.
    3. login_url: <Ihre zuvor kopierte SAML-Anmelde-URL der Anwendung> – erstellen Sie einen neuen Wert.
      Screenshot 2566 07 02 at 18.10.07 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 33
  4. Klicken Sie unten im Datenquellenkonfigurationsassistenten auf „Verbindung testen“.
    Screenshot 2566 07 02 at 18.11.44 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 34938ff2bb 46c7 4cd9 9020 aa00b134d7b5#media blob url=true&id=ec78f4d0 c3c0 4743 8a1d e5568685c9e7&collection=contentId Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 35
    Nach dem Klicken wird Ihr Browser geöffnet und zeigt den folgenden Bildschirm an:
    Screenshot 2566 07 02 at 18.14.29 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 36
    Wenn alles richtig konfiguriert ist, sollten Sie das folgende Popup in DataGrip sehen:
    Screenshot 2566 07 02 at 18.14.34 Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 378b152b94 3cbd 465a a56f 6cfc8cec2c19#media blob url=true&id=ac42272d 34e4 46b6 9ec4 57583deb1983&collection=contentId Aktivierung der Redshift SSO-Authentifizierung mit AWS IAM Identity Center (Multi-Account) 38
    Klicken Sie auf OK.

    Das war’s! Vielen Dank fürs Lesen 🙂