In deze stap-voor-stap handleiding leren we hoe we SSO-authenticatie kunnen instellen met Redshift en AWS IAM Identity Center om de beveiliging te verbeteren en de toegang voor gebruikers eenvoudiger te maken.

Redshift SSO.drawio Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 1

Gebruikte bronnen:

Termen Woordenboek:

TermBetekenis
Identiteitscentrum-accountHet account waar het IAM Identity Center is geconfigureerd.
Redshift-accountHet child account van het Identity Center account dat het Redshift Cluster bevat waarmee we verbinding willen maken.
IDPIdentiteit Provider

Wat is Redshift?

AWS Redshift is een volledig beheerde dataopslagdienst van Amazon Web Services (AWS).
Het is ontworpen om grootschalige gegevensanalytische werklasten aan te kunnen en stelt organisaties in staat om enorme hoeveelheden gegevens snel en kosteneffectief te analyseren.

Wat is IAM Identity Center?

IAM Identity Center biedt één plek waar je personeelsleden kunt aanmaken of koppelen en hun toegang tot al hun AWS-accounts en applicaties centraal kunt beheren.
Je kunt multi-account machtigingen gebruiken om je personeelsleden toegang te geven tot AWS-accounts.

Waarom SSO?

SSO vermindert het aantal aanvalsoppervlakken omdat gebruikers slechts eenmaal per dag inloggen en slechts één set inloggegevens gebruiken.
Door het inloggen te beperken tot één set inloggegevens wordt de beveiliging van de onderneming verbeterd. Als werknemers voor elke app aparte wachtwoorden moeten gebruiken, doen ze dat meestal niet.

Vereisten

  1. Voorgeconfigureerd IAM Identity Center → Aan de slag – AWS IAM Identity Center.
  2. Voorgeconfigureerd Redshift Cluster met administratieve toegang.
  3. Identity Source gebruiker en wachtwoord (Okta, PingOne, etc.).
  4. JetBrains DataGrip geïnstalleerd (kan gratis zijn).

Stap voor stap:

De toepassing Identity Center configureren

Onze eerste stap is het maken van een nieuwe AWS Identity Center applicatie in het Identity Center account om te gebruiken als het belangrijkste kanaal tussen gebruikers en het Redshift cluster.

  1. Klik in het zijpaneel van het IAM Identity Center op “Toepassingen”.
    Screenshot 2566 07 02 at 15.25.46 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 2
  2. Klik rechtsboven op “Applicatie toevoegen”.
    Screenshot 2566 07 02 at 15.27.18 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 3
  3. Vink “Aangepaste SAML 2.0-toepassing toevoegen” aan en klik op “Volgende”.
    Screenshot 2566 07 02 at 15.28.44 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 4
  4. Stel een toepasselijke weergavenaam in, we noemen onze toepassing “Redshift-ReadOnly”, omdat deze toepassing zal worden gebruikt om alleen-lezen toegang te krijgen tot de clustergegevens.
    Screenshot 2566 07 02 at 15.32.25 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 5
  5. Download het Identity Center SAML metadata bestand, we zullen het later gebruiken om onze Redshift account applicatie te configureren.
    Screenshot 2566 07 02 at 15.33.39 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 6
  6. Kopieer de aanmeldings-URL van de applicatie omdat we die later nodig hebben.
  7. Vervolgens configureren we de SAML applicatie ACS (ook wel Assertion Consumer Service genoemd).
    ACS is in het kort de locatie waar het antwoord van de SAML applicatie naartoe wordt gestuurd.

    Omdat we de AWS Redshift JDBC driver gebruiken om verbinding te maken met ons Redshift cluster, moeten we de applicatie ACS instellen op http://localhost:7890/redshift/ – omdat de JDBC driver standaard een server start die luistert op poort 7890.
    Screenshot 2566 07 02 at 15.56.40 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 7ab00f622 901e 48a6 af15 55b11fe407f4#media blob url=true&id=a1039895 cc77 4376 8887 687b0a94ffae&collection=contentId Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 8
  8. Om de SAML application assertion te beperken tot alleen redshift, configureren we het veld “Application SAML audience” op urn:amazon:webservices:redshift.
    Screenshot 2566 07 02 at 15.58.17 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 9

Identity Provider aanmaken

Nadat we onze Redshift-ReadOnly applicatie hebben aangemaakt in het Identity Center account, moeten we een identity provider configureren die door de Redshift-ReadOnly applicatie wordt gebruikt om verbinding te maken met het Redshift account Redshift cluster.

  1. Klik in het zijpaneel IAM Dashboard van uw Redshift-account op Identity Providers.
    Screenshot 2566 07 02 at 16.19.31 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 10
  2. Klik rechtsboven op “Voeg provider toe”.
    Screenshot 2566 07 02 at 16.21.05 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 11
  3. Vul de gegevens voor de nieuwe IDP in:
    1. Stel de “Provider name” in op Redshift-ReadOnly (hetzelfde als onze eerder geconfigureerde applicatie).
    2. Upload het metadatabestand dat we downloaden tijdens het configuratieproces van onze IAM Identity Center-applicatie.f2db2cb3 28d0 4578 ac63 f813a350a2d9#media blob url=true&id=af2a9aac ed5d 4c7c 8aea e91254cfdeaf&collection=contentId Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 12 Klik op “Voeg provider toe” en voltooi.
      Screenshot 2566 07 02 at 16.22.59 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 13
  4. Ga naar de IDP beschrijvingspagina en kopieer de IDP ARN, die gebruiken we later.
    Screenshot 2566 07 02 at 17.04.43 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 140a06764a c351 43f3 810a 15da912d7c05#media blob url=true&id=39497b0d 7a31 4add 8c83 107db8043f05&collection=contentId Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 15

IAM-rol en -beleid maken

Nu we de Identity Provider hebben aangemaakt die gebruikt gaat worden door onze IAM Identity Center applicatie, kunnen we de rol aanmaken die gebruikt gaat worden om verbinding te maken met het Redshift cluster zelf.

  1. Klik in het zijpaneel IAM Dashboard van uw Redshift-account op Rollen.
    Screenshot 2566 07 02 at 16.14.15 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 16
  2. Klik rechtsboven op “Rol maken”.
    Screenshot 2566 07 02 at 16.15.37 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 17
  3. Maak een vertrouwde entiteit van het type SAML 2.0 federatie en stel het volgende in:
    1. Stel de IDP in op de “Redshift-ReadOnly” IDP die we eerder hebben gemaakt.
    2. Vink het keuzerondje “Alleen programmatische toegang toestaan” aan en stel in:
      Attribuut: “SAML:aud” → instellen welk publiek deze rol kan aannemen.
      Waarde: “http://localhost:7890/redshift/ → de audience instellen op onze lokale Redshift JDBC driver server (zoals uitgelegd in de eerste sectie).
      Screenshot 2566 07 02 at 16.44.02 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 18
      Klik op “Volgende”.
  4. Klik op “Beleid maken” en er wordt een nieuw tabblad geopend.5f413ee0 9082 48fe bbf9 1266e384f039#media blob url=true&id=f54050e8 48e9 4c67 8e16 34cb159b53b5&collection=contentId Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 19
  5. Selecteer “JSON”.38e95090 ae9b 4366 9c1e 4c24cab89231#media blob url=true&id=75587102 9ee1 4ce6 abd5 c83d2c872050&collection=contentId Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 20
  6. Plak in het paneel Beleidseditor de volgende beleidsverklaring en bewerk de volgende waarden in het bereik “Hulpbron” zodat ze overeenkomen met die van jezelf: <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. Geef het beleid de naam “Redshift-ReadOnly-policy” en klik op “Beleid maken”.638f1d27 23e5 4a2f 8351 3f13ebf6a7f1#media blob url=true&id=e6d9b9f7 ff16 4b5a 851e 162a99c4d39d&collection=contentId Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 21
    Screenshot 2566 07 02 at 16.55.08 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 22
  8. Ga terug naar de oorsprong tab waar we begonnen met het maken van onze IAM rol
    → klik op vernieuwen → typ “Redshift-ReadOnly-policy” in de zoekbalk → vink de “Redshift-ReadOnly-policy” policy aan → klik op “Volgende”.
    Screenshot 2566 07 02 at 16.56.59 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 23
  9. Geef de rol de naam “Redshift-ReadOnly-role” en klik rechtsonder op “Creëer rol”.
    Screenshot 2566 07 02 at 16.59.54 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 24f0080f98 f453 40bb 83c7 24e81210a9f2#media blob url=true&id=7ece7e5c f65e 4144 9c4a e4856fa6e8db&collection=contentId Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 25
  10. Nu we de IAM rol hebben aangemaakt, ga je naar de beschrijvingspagina en kopieer je de ARN van de rol, die we later zullen gebruiken.
    Screenshot 2566 07 02 at 17.08.58 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 26

De IAM Identity Center Application Attributes configureren

Om onze applicatie te configureren om met Redshift te werken, moeten we enkele applicatieattributen configureren die ons zullen helpen “hoe ermee te verbinden”.

  1. Ga in het IAM Identity Center naar het paneel Applications en kies de applicatie die we eerder hebben gemaakt.
    Screenshot 2566 07 02 at 17.21.15 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 27
  2. Wijs gebruikers en groepen toe die je rechten wilt geven op deze applicatie → Wijs gebruikerstoegang toe aan applicaties in de IAM Identity Center console – AWS IAM Identity Center (opvolger van AWS Single Sign-On).
    Screenshot 2566 07 02 at 17.25.48 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 28
  3. Klik op “attribuutkoppelingen”.
    Screenshot 2566 07 02 at 17.27.54 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 29
  4. Stel de attributen in volgens de volgende tabel en vervang de plaatshouder <role_arn> & <idp_arn> door de ARN’s die je in de vorige stappen hebt gekopieerd:
AttribuutWaardeUitleg
Onderwerp (standaardkenmerk)${user:email}Het onderwerp gebruikt.
https://aws.amazon.com/SAML/Attributes/RoleSessionName${user:email}De sessienaam die tegen het cluster is aangemaakt.
https://redshift.amazon.com/SAML/Attributes/AutoCreatetrueConfigureer de applicatie om de Redshift gebruiker automatisch aan te maken bij authenticatie.
https://aws.amazon.com/SAML/Attributes/Role,De IAM-rol en IDP die moeten worden gebruikt om verbinding te maken met Redshift.
https://redshift.amazon.com/SAML/Attributes/DbUser${user:email}De DB gebruikersnaam die moet worden aangemaakt.
https://redshift.amazon.com/SAML/Attributes/DbGroupsalleen-lezenDe DB-groep om de nieuw aangemaakte gebruiker aan toe te wijzen.
Screenshot 2566 07 02 at 17.38.32 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 30

Klik op “Wijzigingen opslaan”.

Redshift-groep aanmaken & rechten toekennen

In deze fase configureren we de readonly Redshift groep (zoals gedefinieerd in de Applicatie attributen in de vorige fase) waaraan elke gebruiker wordt toegewezen wanneer hij verbinding maakt via de applicatie.

  1. Maak verbinding met je Redshift cluster met een bevoorrechte gebruiker (superuser).
  2. Voer het volgende SQL script uit om de readonly groep aan te maken en read rechten toe te kennen aan het public schema (het standaard schema).
    				
    					create group readonly;
    grant usage on schema public to group readonly;
    grant select on all tables in schema public to group readonly;
    				
    			

De DataGrip-clientgegevensbron configureren

:tada: We zijn er helemaal klaar voor en staan eindelijk op het punt om onze vruchten te oogsten! :tada:
In deze stap configureren we een DataGrip databron die zal worden gebruikt als de verbinding tussen ons en het Redshift cluster.

  1. Open DataGrip en maak een nieuwe Redshift databron aan.
    Screenshot 2566 07 02 at 17.52.46 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 31
  2. Er wordt een gegevensbronwizard geopend waarin je de verbinding kunt configureren en de volgende attributen kunt instellen:
    1. Naam: Redshift ReadOnly SSO.
    2. Host: je Redshift server endpoint.
    3. User: uw email identifier (wordt gebruikt als de Redshift DB User).
    4. Wachtwoord: het wachtwoord dat je hebt ingesteld in je Identity Source (Okta, PingOne, etc.).
    5. Database: de database waarmee je verbinding wilt maken.
    6. URL: de url is op dit punt al grotendeels geconfigureerd (vanwege de DataGrip auto-fill), het enige wat je nog hoeft te doen is de JDBC url prefix te veranderen van jdbc:redshift:// in jdbc:redshift:iam://.
      Screenshot 2566 07 02 at 17.57.29 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 32
  3. Ga naar het tabblad Advanced en configureer deze 3 attributen:
    1. plugin_name: com.amazon.redshift.plugin.BrowserSamlCredentialsProvider – al gedefinieerd, dus bewerk het.
    2. idp_reponse_timeout: 60 – maak een nieuwe waarde.
    3. login_url: <je eerder gekopieerde SAML applicatie login url> – maak een nieuwe waarde.
      Screenshot 2566 07 02 at 18.10.07 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 33
  4. Klik onderin de configuratiewizard voor de gegevensbron op “test verbinding”.
    Screenshot 2566 07 02 at 18.11.44 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 34938ff2bb 46c7 4cd9 9020 aa00b134d7b5#media blob url=true&id=ec78f4d0 c3c0 4743 8a1d e5568685c9e7&collection=contentId Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 35
    Eenmaal geklikt zal je browser openen en het volgende scherm weergeven:
    Screenshot 2566 07 02 at 18.14.29 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 36
    Als alles goed is geconfigureerd, zou je het volgende moeten zien verschijnen in DataGrip:
    Screenshot 2566 07 02 at 18.14.34 Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 378b152b94 3cbd 465a a56f 6cfc8cec2c19#media blob url=true&id=ac42272d 34e4 46b6 9ec4 57583deb1983&collection=contentId Redshift SSO-authenticatie inschakelen met AWS IAM Identity Center (Multi-Account) 38
    Klik op OK.

    Dat was het! Bedankt voor het lezen 🙂