Inhoudsopgave
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.
Gebruikte bronnen:
- https://aws.amazon.com/blogs/big-data/federated-authentication-to-amazon-redshift-using-aws-single-sign-on/
- https://aws.amazon.com/blogs/big-data/amazon-redshift-identity-federation-with-multi-factor-authentication/
Termen Woordenboek:
Term | Betekenis |
---|---|
Identiteitscentrum-account | Het account waar het IAM Identity Center is geconfigureerd. |
Redshift-account | Het child account van het Identity Center account dat het Redshift Cluster bevat waarmee we verbinding willen maken. |
IDP | Identiteit 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
- Voorgeconfigureerd IAM Identity Center → Aan de slag – AWS IAM Identity Center.
- Voorgeconfigureerd Redshift Cluster met administratieve toegang.
- Identity Source gebruiker en wachtwoord (Okta, PingOne, etc.).
- 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.
- Klik in het zijpaneel van het IAM Identity Center op “Toepassingen”.
- Klik rechtsboven op “Applicatie toevoegen”.
- Vink “Aangepaste SAML 2.0-toepassing toevoegen” aan en klik op “Volgende”.
- 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.
- Download het Identity Center SAML metadata bestand, we zullen het later gebruiken om onze Redshift account applicatie te configureren.
- Kopieer de aanmeldings-URL van de applicatie omdat we die later nodig hebben.
- 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 ophttp://localhost:7890/redshift/
– omdat de JDBC driver standaard een server start die luistert op poort 7890. - Om de SAML application assertion te beperken tot alleen redshift, configureren we het veld “Application SAML audience” op
urn:amazon:webservices:redshift
.
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.
- Klik in het zijpaneel IAM Dashboard van uw Redshift-account op Identity Providers.
- Klik rechtsboven op “Voeg provider toe”.
- Vul de gegevens voor de nieuwe IDP in:
- Stel de “Provider name” in op Redshift-ReadOnly (hetzelfde als onze eerder geconfigureerde applicatie).
- Upload het metadatabestand dat we downloaden tijdens het configuratieproces van onze IAM Identity Center-applicatie. Klik op “Voeg provider toe” en voltooi.
- Ga naar de IDP beschrijvingspagina en kopieer de IDP ARN, die gebruiken we later.
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.
- Klik in het zijpaneel IAM Dashboard van uw Redshift-account op Rollen.
- Klik rechtsboven op “Rol maken”.
- Maak een vertrouwde entiteit van het type SAML 2.0 federatie en stel het volgende in:
- Stel de IDP in op de “Redshift-ReadOnly” IDP die we eerder hebben gemaakt.
- 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).
Klik op “Volgende”.
- Klik op “Beleid maken” en er wordt een nieuw tabblad geopend.
- Selecteer “JSON”.
- 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: : :cluster: ", "arn:aws:redshift: : :dbuser: /${redshift:DbUser}", "arn:aws:redshift: : :dbname: /${redshift:DbName}", "arn:aws:redshift: : :dbgroup: /bi_users_group", ] } ] } - Geef het beleid de naam “Redshift-ReadOnly-policy” en klik op “Beleid maken”.
- 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”. - Geef de rol de naam “Redshift-ReadOnly-role” en klik rechtsonder op “Creëer rol”.
- 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.
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”.
- Ga in het IAM Identity Center naar het paneel Applications en kies de applicatie die we eerder hebben gemaakt.
- 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).
- Klik op “attribuutkoppelingen”.
- 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:
Attribuut | Waarde | Uitleg |
---|---|---|
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/AutoCreate | true | Configureer 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/DbGroups | alleen-lezen | De DB-groep om de nieuw aangemaakte gebruiker aan toe te wijzen. |
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.
- Maak verbinding met je Redshift cluster met een bevoorrechte gebruiker (superuser).
- Voer het volgende SQL script uit om de
readonly
groep aan te maken enread
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
We zijn er helemaal klaar voor en staan eindelijk op het punt om onze vruchten te oogsten!
In deze stap configureren we een DataGrip databron die zal worden gebruikt als de verbinding tussen ons en het Redshift cluster.
- Open DataGrip en maak een nieuwe Redshift databron aan.
- Er wordt een gegevensbronwizard geopend waarin je de verbinding kunt configureren en de volgende attributen kunt instellen:
- Naam: Redshift ReadOnly SSO.
- Host: je Redshift server endpoint.
- User: uw email identifier (wordt gebruikt als de Redshift DB User).
- Wachtwoord: het wachtwoord dat je hebt ingesteld in je Identity Source (Okta, PingOne, etc.).
- Database: de database waarmee je verbinding wilt maken.
- 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://
injdbc:redshift:iam://
.
- Ga naar het tabblad
Advanced
en configureer deze 3 attributen:- plugin_name:
com.amazon.redshift.plugin.BrowserSamlCredentialsProvider
– al gedefinieerd, dus bewerk het. - idp_reponse_timeout: 60 – maak een nieuwe waarde.
- login_url: <je eerder gekopieerde SAML applicatie login url> – maak een nieuwe waarde.
- plugin_name:
- Klik onderin de configuratiewizard voor de gegevensbron op “test verbinding”.
Eenmaal geklikt zal je browser openen en het volgende scherm weergeven:
Als alles goed is geconfigureerd, zou je het volgende moeten zien verschijnen in DataGrip:
Klik op OK.
Dat was het! Bedankt voor het lezen 🙂
Op zoek naar verse inhoud?
Ontvang artikelen en inzichten uit onze wekelijkse nieuwsbrief.
Door uw email in te voeren, gaat u akkoord met het ontvangen van emails van Elementor, inclusief marketing emails,
en gaat u akkoord met onze Algemene voorwaarden en Privacybeleid.