Indice dei Contenuti
In questa guida passo-passo, impareremo come configurare l’autenticazione SSO con Redshift e AWS IAM Identity Center per aumentare la sicurezza e facilitare l’accesso degli utenti.
Fonti utilizzate:
- 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/
Dizionario dei termini:
Termine | Significato |
---|---|
Account Identity Center | L’account in cui è configurato l’IAM Identity Center. |
Account Redshift | L’account figlio dell’account Identity Center che contiene il cluster Redshift a cui vogliamo connetterci. |
IDP | Identity Provider |
Cos’è Redshift?
AWS Redshift è un servizio di data warehousing completamente gestito fornito da Amazon Web Services (AWS).
È progettato per gestire carichi di lavoro di analisi dei dati su larga scala e consente alle organizzazioni di analizzare grandi quantità di dati rapidamente e in modo conveniente.
Cos’è IAM Identity Center?
IAM Identity Center fornisce un unico luogo in cui è possibile creare o connettere utenti della forza lavoro e gestire centralmente il loro accesso a tutti i loro account e applicazioni AWS.
Puoi utilizzare le autorizzazioni multi-account per assegnare agli utenti della tua forza lavoro l’accesso agli account AWS.
Perché SSO?
SSO riduce il numero di superfici di attacco perché gli utenti effettuano il login solo una volta al giorno e utilizzano un solo set di credenziali.
Ridurre il login a un solo set di credenziali migliora la sicurezza dell’azienda. Quando i dipendenti devono utilizzare password separate per ogni app, di solito non lo fanno.
Prerequisiti
- IAM Identity Center preconfigurato → Iniziare – AWS IAM Identity Center.
- Cluster Redshift preconfigurato con accesso amministrativo.
- Utente e password della fonte di identità (Okta, PingOne, ecc.).
- JetBrains DataGrip installato (può essere il livello gratuito).
Passo dopo passo:
Configurare l’applicazione Identity Center
Il nostro primo passo sarà creare una nuova applicazione AWS Identity Center nell’account Identity Center da utilizzare come canale principale tra gli utenti e il cluster Redshift.
- Nel pannello laterale di IAM Identity Center, clicca su “Applicazioni”.
- Nell’angolo in alto a destra, clicca su “Aggiungi applicazione”.
- Seleziona “aggiungi applicazione SAML 2.0 personalizzata” e clicca su “Avanti”.
- Imposta un nome di visualizzazione appropriato, chiameremo la nostra applicazione “Redshift-ReadOnly”, poiché questa applicazione sarà utilizzata per ottenere l’accesso in sola lettura ai dati del cluster.
- Scarica il file di metadati SAML di Identity Center, lo useremo più tardi per configurare la nostra applicazione dell’account Redshift.
- Copia l’URL di accesso dell’applicazione URL poiché ne avremo bisogno più tardi.
- Successivamente, configureremo l’ACS dell’applicazione SAML SAML application ACS (aka Assertion Consumer Service).
In breve, ACS è la posizione in cui verrà inviata la risposta dell’applicazione SAML.
Poiché utilizzeremo il driver JDBC di AWS Redshift per connetterci al nostro cluster Redshift, dovremo impostare l’ACS dell’applicazione suhttp://localhost:7890/redshift/
– poiché il driver JDBC avvia un server in ascolto sulla porta 7890 per impostazione predefinita. - Per limitare l’asserzione dell’applicazione SAML solo a Redshift, configureremo il campo “Audience SAML dell’applicazione” su
urn:amazon:webservices:redshift
.
Creare Identity Provider
Dopo aver creato la nostra applicazione Redshift-ReadOnly nell’account Identity Center, dobbiamo configurare un identity provider da utilizzare dall’applicazione Redshift-ReadOnly per connettersi al cluster Redshift dell’account Redshift.
- Nel pannello laterale della Dashboard IAM del tuo account Redshift, clicca su Identity Providers.
- Nell’angolo in alto a destra, clicca su “Aggiungi provider”.
- Compila i dettagli per il nuovo IDP:
- Imposta il “Nome del provider” su Redshift-ReadOnly (lo stesso della nostra applicazione configurata in precedenza).
- Carica il file di metadati che abbiamo scaricato durante il processo di configurazione della nostra applicazione IAM Identity Center. Clicca su “Aggiungi provider” e termina.
- Vai alla pagina di descrizione dell’IDP e copia l’ARN dell’IDP IDP ARN, lo useremo più tardi .
Creare Ruolo IAM & Policy
Ora che abbiamo creato l’Identity Provider da utilizzare dalla nostra applicazione IAM Identity Center, possiamo creare il ruolo che verrà utilizzato per connettersi al cluster Redshift stesso.
- Nel pannello laterale della Dashboard IAM del tuo account Redshift, clicca su Ruoli.
- Nell’angolo in alto a destra, clicca su “Crea Ruolo”.
- Crea un’entità attendibile di tipo federazione SAML 2.0 e imposta quanto segue:
- Imposta l’IDP sul “Redshift-ReadOnly” IDP che abbiamo creato in precedenza.
- Seleziona il pulsante di opzione “Consenti solo accesso programmatico” e imposta:
Attributo: “SAML:aud” → impostando quale audience può assumere questo ruolo.
Valore: “http://localhost:7890/redshift/” → Impostando l’audience sul nostro server locale del driver JDBC di Redshift (come spiegato nella prima sezione).
Clicca su “Avanti”.
- Clicca su “Crea policy” e si aprirà una nuova scheda.
- Seleziona “JSON”.
- Nel pannello dell’editor delle policy, incolla la seguente dichiarazione di policy e modifica i seguenti valori nell’ambito “Resource” per adattarli ai tuoi:
<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", ] } ] } - Assegna il nome alla policy “Redshift-ReadOnly-policy” e clicca su “Create policy”.
- Torna alla scheda di origine dove abbiamo iniziato a creare il nostro ruolo IAM
→ clicca su refresh → digita “Redshift-ReadOnly-policy” nella barra di ricerca → seleziona la policy “Redshift-ReadOnly-policy” → clicca su “Next”. - Assegna il nome al ruolo “Redshift-ReadOnly-role” e clicca su “Create role” nell’angolo in basso a destra.
- Ora che abbiamo creato il ruolo IAM, vai alla sua pagina di descrizione e copia l’ ARN del ruolo, lo useremo più tardi.
Configura gli attributi dell’applicazione IAM Identity Center
Per configurare la nostra applicazione per funzionare con Redshift, dobbiamo configurare alcuni attributi dell’applicazione che la guideranno su “come connettersi” ad essa.
- Nel IAM Identity Center, vai al pannello delle Applicazioni e scegli l’applicazione che abbiamo creato in precedenza.
- Assegna utenti e gruppi a cui desideri concedere permessi per questa applicazione → Assegna l’accesso degli utenti alle applicazioni nella console IAM Identity Center – AWS IAM Identity Center (successore di AWS Single Sign-On).
- Clicca su “attribute mappings”.
- Imposta gli attributi secondo la seguente tabella e sostituisci i segnaposto
<role_arn>
&<idp_arn>
con gli ARN che hai copiato nei passaggi precedenti:
Attributo | Valore | Spiegazione |
---|---|---|
Soggetto (attributo predefinito) | ${user:email} | Il soggetto utilizzato. |
https://aws.amazon.com/SAML/Attributes/RoleSessionName | ${user:email} | Il nome della sessione creato contro il cluster. |
https://redshift.amazon.com/SAML/Attributes/AutoCreate | true | Configura l’applicazione per creare automaticamente l’utente Redshift all’autenticazione. |
https://aws.amazon.com/SAML/Attributes/Role | Il ruolo IAM e l’IDP da utilizzare per connettersi a Redshift. | |
https://redshift.amazon.com/SAML/Attributes/DbUser | ${user:email} | Il nome dell’utente DB da creare. |
https://redshift.amazon.com/SAML/Attributes/DbGroups | readonly | Il gruppo DB a cui assegnare il nuovo utente creato. |
Clicca su “Save changes”.
Crea gruppo Redshift & Concedi permessi
In questa fase, configureremo il gruppo readonly
Redshift (come definito negli attributi dell’applicazione nella fase precedente) a cui ogni utente sarà assegnato quando si connette tramite l’applicazione.
- Connettiti al tuo cluster Redshift con un utente privilegiato (superuser).
- Esegui il seguente script SQL per creare il gruppo
readonly
e assegnargli i permessiread
allo schema pubblico (lo schema predefinito).
create group readonly; grant usage on schema public to group readonly; grant select on all tables in schema public to group readonly;
Configura la fonte dati del client DataGrip
Siamo pronti e finalmente stiamo per raccogliere i nostri frutti!
In questo passaggio, configureremo una fonte dati DataGrip che sarà utilizzata come connessione tra noi e il cluster Redshift.
- Apri DataGrip e crea una nuova fonte dati Redshift.
- Si aprirà una procedura guidata per la configurazione della connessione, imposta i seguenti attributi:
- Nome: Redshift ReadOnly SSO.
- Host: il tuo endpoint del server Redshift.
- Utente: il tuo identificatore email (sarà utilizzato come utente DB Redshift).
- Password: la password che hai configurato nella tua fonte di identità (Okta, PingOne, ecc.)
- Database: il database a cui vuoi connetterti.
- URL: l’url sarà per lo più configurato a questo punto (grazie all’auto-compilazione di DataGrip), tutto ciò che resta da fare è cambiare il prefisso dell’url JDBC da
jdbc:redshift://
ajdbc:redshift:iam://
.
- Vai alla scheda
e configura questi 3 attributi: plugin_name :– già definito, quindi modificalo. idp_reponse_timeout: 60 – crea un nuovo valore.login_url :il tuo url di login dell’applicazione SAML precedentemente copiato – crea un nuovo valore. width: 547px;width: 547px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.10.07.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.10.07.pngIn the bottom of the data source configuration wizard, click “test connection”.In fondo alla procedura guidata di configurazione della fonte dati, clicca su “test connection”.width: 549px;width: 549px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.11.44.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.11.44.pngblob:https://elementor.atlassian.net/938ff2bb-46c7-4cd9-9020-aa00b134d7b5#media-blob-url=trueid=ec78f4d0-c3c0-4743-8a1d-e5568685c9e7collection=contentId-664896059contextId=664896059height=88width=549alt=blob:https://elementor.atlassian.net/938ff2bb-46c7-4cd9-9020-aa00b134d7b5#media-blob-url=trueid=ec78f4d0-c3c0-4743-8a1d-e5568685c9e7collection=contentId-664896059contextId=664896059height=88width=549alt=Once clicked, your browser will open and display the following screen:Una volta cliccato, il tuo browser si aprirà e mostrerà la seguente schermata:width: 1156px;width: 1156px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.29.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.29.pngIf everything is configured properly, you should see the following pop up in DataGrip:Se tutto è configurato correttamente, dovresti vedere il seguente popup in DataGrip:width: 467px;width: 467px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.34.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.34.pngblob:https://elementor.atlassian.net/8b152b94-3cbd-465a-a56f-6cfc8cec2c19#media-blob-url=trueid=ac42272d-34e4-46b6-9ec4-57583deb1983collection=contentId-664896059contextId=664896059height=215width=467alt=blob:https://elementor.atlassian.net/8b152b94-3cbd-465a-a56f-6cfc8cec2c19#media-blob-url=trueid=ac42272d-34e4-46b6-9ec4-57583deb1983collection=contentId-664896059contextId=664896059height=215width=467alt=Click OK.Clicca OK.That’s it! Thank you for reading :)È tutto! Grazie per aver letto 🙂 plugin_name :– già definito, quindi modificalo. idp_reponse_timeout: 60 – crea un nuovo valore.login_url :il tuo url di login dell’applicazione SAML precedentemente copiato – crea un nuovo valore. width: 547px;width: 547px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.10.07.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.10.07.pngIn the bottom of the data source configuration wizard, click “test connection”.In fondo alla procedura guidata di configurazione della fonte dati, clicca su “test connection”.width: 549px;width: 549px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.11.44.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.11.44.pngblob:https://elementor.atlassian.net/938ff2bb-46c7-4cd9-9020-aa00b134d7b5#media-blob-url=trueid=ec78f4d0-c3c0-4743-8a1d-e5568685c9e7collection=contentId-664896059contextId=664896059height=88width=549alt=blob:https://elementor.atlassian.net/938ff2bb-46c7-4cd9-9020-aa00b134d7b5#media-blob-url=trueid=ec78f4d0-c3c0-4743-8a1d-e5568685c9e7collection=contentId-664896059contextId=664896059height=88width=549alt=Once clicked, your browser will open and display the following screen:Una volta cliccato, il tuo browser si aprirà e mostrerà la seguente schermata:width: 1156px;width: 1156px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.29.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.29.pngIf everything is configured properly, you should see the following pop up in DataGrip:Se tutto è configurato correttamente, dovresti vedere il seguente popup in DataGrip:width: 467px;width: 467px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.34.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.34.pngblob:https://elementor.atlassian.net/8b152b94-3cbd-465a-a56f-6cfc8cec2c19#media-blob-url=trueid=ac42272d-34e4-46b6-9ec4-57583deb1983collection=contentId-664896059contextId=664896059height=215width=467alt=blob:https://elementor.atlassian.net/8b152b94-3cbd-465a-a56f-6cfc8cec2c19#media-blob-url=trueid=ac42272d-34e4-46b6-9ec4-57583deb1983collection=contentId-664896059contextId=664896059height=215width=467alt=Click OK.Clicca OK.That’s it! Thank you for reading :)È tutto! Grazie per aver letto 🙂 - idp_reponse_timeout: 60 – crea un nuovo valore.
login_url :il tuo url di login dell’applicazione SAML precedentemente copiato – crea un nuovo valore. width: 547px;width: 547px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.10.07.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.10.07.pngIn the bottom of the data source configuration wizard, click “test connection”.In fondo alla procedura guidata di configurazione della fonte dati, clicca su “test connection”.width: 549px;width: 549px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.11.44.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.11.44.pngblob:https://elementor.atlassian.net/938ff2bb-46c7-4cd9-9020-aa00b134d7b5#media-blob-url=trueid=ec78f4d0-c3c0-4743-8a1d-e5568685c9e7collection=contentId-664896059contextId=664896059height=88width=549alt=blob:https://elementor.atlassian.net/938ff2bb-46c7-4cd9-9020-aa00b134d7b5#media-blob-url=trueid=ec78f4d0-c3c0-4743-8a1d-e5568685c9e7collection=contentId-664896059contextId=664896059height=88width=549alt=Once clicked, your browser will open and display the following screen:Una volta cliccato, il tuo browser si aprirà e mostrerà la seguente schermata:width: 1156px;width: 1156px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.29.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.29.pngIf everything is configured properly, you should see the following pop up in DataGrip:Se tutto è configurato correttamente, dovresti vedere il seguente popup in DataGrip:width: 467px;width: 467px;https://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.34.pnghttps://elementor.com/blog/wp-content/uploads/2023/08/Screenshot-2566-07-02-at-18.14.34.pngblob:https://elementor.atlassian.net/8b152b94-3cbd-465a-a56f-6cfc8cec2c19#media-blob-url=trueid=ac42272d-34e4-46b6-9ec4-57583deb1983collection=contentId-664896059contextId=664896059height=215width=467alt=blob:https://elementor.atlassian.net/8b152b94-3cbd-465a-a56f-6cfc8cec2c19#media-blob-url=trueid=ac42272d-34e4-46b6-9ec4-57583deb1983collection=contentId-664896059contextId=664896059height=215width=467alt=Click OK.Clicca OK.That’s it! Thank you for reading :)È tutto! Grazie per aver letto 🙂
- In fondo alla procedura guidata di configurazione della fonte dati, clicca su “test connection”.
Una volta cliccato, il tuo browser si aprirà e mostrerà la seguente schermata:
Se tutto è configurato correttamente, dovresti vedere il seguente popup in DataGrip:
Clicca OK.
È tutto! Grazie per aver letto 🙂
Cerchi contenuti freschi?
Ricevi articoli e approfondimenti dalla nostra newsletter settimanale.
Inserendo la tua email, accetti di ricevere email da Elementor, incluse email di marketing, e accetti i nostri Termini e Condizioni e la Politica sulla Privacy