Logo Zephyrnet

Federa l'accesso Single Sign-On all'editor di query Amazon Redshift v2 con Okta

Data:

Editor di query Amazon Redshift v2 è un'applicazione client SQL basata sul Web che puoi utilizzare per creare ed eseguire query sul tuo Amazon RedShift magazzino dati. Puoi visualizzare i risultati delle query con grafici e collaborare condividendo le query con i membri del tuo team. È possibile utilizzare l'editor di query v2 per creare database, schemi, tabelle e caricare dati Servizio di archiviazione semplice Amazon (Amazon S3) utilizzando il comando COPY o utilizzando una procedura guidata. Puoi esplorare più database ed eseguire query sul tuo data warehouse o data lake Amazon Redshift oppure eseguire query federate su database operativi come Amazon Aurora. Poiché si tratta di un editor SQL gestito nel tuo browser ed è integrato con il tuo provider Single Sign-On (SSO), l'editor di query di Amazon Redshift v2 riduce il numero di passaggi per la prima query in modo da ottenere informazioni più rapidamente.

L'integrazione dell'editor di query v2 di Amazon Redshift con il tuo provider di identità (IdP) reindirizza automaticamente il browser dell'utente alla console dell'editor di query v2 anziché alla console di Amazon Redshift. Ciò consente agli utenti di accedere facilmente ai cluster Amazon Redshift tramite l'editor di query v2 utilizzando credenziali federate senza gestire utenti e password del database.

In questo post ci concentreremo su Okta come IdP e illustreremo come configurare la tua applicazione Okta e Gestione dell'identità e dell'accesso di AWS (IAM) autorizzazioni. Dimostriamo anche come limitare l'accesso dei tuoi utenti per utilizzare solo l'editor di query v2 senza concedere loro l'accesso per eseguire funzioni di amministrazione sul Console di gestione AWS.

Panoramica della soluzione

I passaggi di alto livello in questo post sono i seguenti:

  1. Configura Okta, che contiene i tuoi utenti organizzati in gruppi logici e applicazione di federazione degli account AWS.
  2. Configura due ruoli IAM: uno che stabilisce una relazione di fiducia tra il tuo IdP e AWS e un secondo ruolo che Okta utilizza per accedere ad Amazon Redshift.
  3. Completa la configurazione avanzata di Okta:
    1. Finalizza la configurazione di Okta inserendo i ruoli appena creati.
    2. Definire uno stato di inoltro predefinito per indirizzare gli utenti all'editor di query Amazon Redshift v2 dopo aver eseguito con successo l'autenticazione SAML.
    3. Configura il SAML PrincipalTagAttribute. Questo elemento consente di passare attributi come tag di sessione nell'asserzione SAML. Per ulteriori informazioni sui tag di sessione, vedere Passaggio dei tag di sessione in AWS STS.
  4. Configura i gruppi di database Amazon Redshift:
    1. Crea gruppi all'interno del database Amazon Redshift per abbinare i gruppi Okta.
    2. Autorizzare questi gruppi ad accedere a determinati schemi e tabelle.
    3. Accedi all'editor di query di Amazon Redshift v2 utilizzando le tue credenziali aziendali ed esegui query sul database di Amazon Redshift.
  5. Accedi al tuo account Okta e accedi all'applicazione che ti è stata assegnata. L'applicazione ti indirizza all'editor di query di Amazon Redshift v2 utilizzando l'accesso federato.
  6. Accedi ed esegui query sul tuo database Amazon Redshift.

Prerequisiti

Questo post presuppone che tu abbia i seguenti prerequisiti:

Configura Okta

Per prima cosa configuriamo l'applicazione Okta e creiamo utenti e gruppi. Completa i seguenti passaggi:

  1. Accedi alla tua console di amministrazione Okta utilizzando l'URL https://<prefix>-admin.okta.com/admin/dashboard, Dove è specifico per il tuo account ed è stato creato durante la configurazione dell'account.
  2. Nella console di amministrazione, scegli Admin.
  3. Sotto elenco nel pannello di navigazione, scegli Persone.
  4. Per aggiungere utenti, scegli Aggiungi persona.
    Lo screenshot seguente mostra gli utenti che abbiamo creato.
  5. Per aggiungere gruppi in Okta, scegli ATTIVITA' E GRUPPI nel riquadro di navigazione, quindi scegli Aggiungi gruppo.
    Lo screenshot seguente mostra due gruppi che abbiamo creato. Abbiamo aggiunto Jane a analyst_users ed Mike a bi_users.
  6. Sotto Applicazioni nel pannello di navigazione, scegli Applicazioni e scegli Sfoglia il catalogo delle app.
  7. Cercare Federazione degli account AWS e scegli Aggiungi.
  8. Dopo aver aggiunto l'applicazione, scegli Federazione degli account AWS.
  9. Lasciare i valori Impostazioni generali al loro valore predefinito e scegli Avanti.
  10. Sotto Opzioni di accesso, selezionare SAML 2.0.
  11. Scegliere il Metadati del provider di identità collegamento per scaricare il file di metadati in formato .xml.

Configura i ruoli IAM

Successivamente, imposti un ruolo IAM che stabilisce una relazione di fiducia tra l'IdP e AWS. Puoi anche creare un ruolo IAM che Okta utilizza per accedere all'editor di query di Amazon Redshift v2.

  1. Sulla console IAM, sotto Gestione degli accessi nel pannello di navigazione, scegli Provider di identità.
  2. Scegli Aggiungi fornitore.
  3. Nel Tipo di fornitoreSelezionare SAML.
  4. Nel Nome del provider¸ inserisci un nome.
  5. Scegli Scegli il file e carica il file di metadati scaricato.
  6. Scegli Aggiungi fornitore.

    Ora crei il ruolo di federazione IAM SAML 2.0.
  7. Sulla console IAM, scegli Ruoli nel pannello di navigazione.
  8. Scegli Crea ruolo.
  9. Nel Tipo di entità attendibile, selezionare Federazione SAML 2.0.
  10. Nel Provider basato su SAML 2.0, scegli l'IdP creato nel passaggio precedente.
  11. Seleziona Consenti accesso programmatico e alla Console di gestione AWS.
  12. Scegli Avanti e quindi scegliere Crea politica.

L'editor di query di Amazon Redshift v2 fornisce più policy gestite per accedere all'editor di query. Per un elenco delle policy gestite, fare riferimento a Configurazione del tuo account AWS. La policy gestita ti consente di limitare l'accesso degli utenti all'utilizzo solo dell'editor di query v2 senza concedere loro l'accesso per eseguire funzioni di amministrazione sulla console. Per questo post utilizziamo il file AmazonRedshiftQueryEditorV2ReadSharing policy gestita e creare una policy personalizzata.

Nel codice seguente, fornisci i parametri della regione, dell'account e del cluster per concedere l'accesso ad Amazon Redshift per ottenere le credenziali del cluster, creare utenti e consentire agli utenti di unirsi a gruppi:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "RedshiftClusterPermissions",
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials",
                "redshift:CreateClusterUser",
                "redshift:JoinGroup"
            ],
            "Resource": [
                "arn:aws:redshift:<region>:<account>:cluster:<cluster>,
                "arn:aws:redshift:<region>:<account>:dbuser:<cluster>/${aws:PrincipalTag/RedshiftDbUser}",
                "arn:aws:redshift:<region>:<account>:dbgroup:<cluster>/analyst_users",
                "arn:aws:redshift:<region>:<account>:dbgroup:<cluster>/bi_users",
                "arn:aws:redshift:<region>:<account>:dbname:<cluster>/${redshift:DBName}"
            ]
        }
    ]
}

L'appartenenza al gruppo dura solo per la durata della sessione utente. Inoltre, non c'è CreateGroup autorizzazione perché i gruppi devono essere creati manualmente e concessi privilegi DB.

  1. Allega la policy creata al ruolo.
    Lo screenshot seguente mostra la pagina di riepilogo del ruolo.
  2. Modifica le relazioni di fiducia per il tuo ruolo e aggiungi sts:TagSession permesso.
    Quando si utilizzano tag di sessione, le policy di attendibilità per tutti i ruoli connessi ai tag di passaggio IdP devono avere l'estensione m:TagSession autorizzazione. Per i ruoli senza questa autorizzazione nella policy di attendibilità, il AssumeRole operazione fallisce.
  3. Scegli Politica di aggiornamento.

Imposta la configurazione avanzata di Okta

In questa sezione finalizzi la configurazione di Okta aggiungendo i ruoli IAM che hai appena creato. Hai configurato SAML PrincipalTag attributi come RedshiftDbUser ed RedshiftDbGroups, che vengono passati nell'asserzione SAML per federare l'accesso all'editor di query Amazon Redshift v2. Puoi inoltre definire uno stato di inoltro predefinito, ovvero l'URL a cui vengono indirizzati gli utenti dopo un'autenticazione riuscita tramite SAML.

  1. Nel tuo account Okta, apri l'app AWS Account Federation.
  2. Sulla Firmare scheda, impostare Stato relè predefinito all'URL dell'editor di query, utilizzando il formato https://<region>.console.aws.amazon.com/sqlworkbench/home. Per questo post, utilizziamo https://eu-west-1.console.aws.amazon.com/sqlworkbench/home.
  3. Scegli attributi e impostare le seguenti mappature degli attributi:
    1. Imposta l'utente DB utilizzando PrincipalTag:RedshiftDbUser. Utilizza il nome utente nella directory. Si tratta di un tag obbligatorio e definisce l'utente del database utilizzato dall'editor di query v2.
    2. Imposta i gruppi DB utilizzando PrincipalTag:RedshiftDbGroups. Questo utilizza i gruppi Okta per riempire i tag principali. Il suo valore deve essere un elenco separato da due punti.
    3. Impostare le chiavi transitive utilizzando TransitiveTagKeys. Ciò impedisce agli utenti di modificare i tag di sessione in caso di concatenamento dei ruoli.

Questi tag vengono inoltrati al file redshift:GetClusterCredentials API per ottenere le credenziali per il tuo cluster. La tabella seguente riepiloga la configurazione degli attributi.

  1. Sotto Impostazioni di accesso avanzateSelezionare Utilizza la mappatura dei gruppi.
  2. Inserisci gli ARN dei ruoli IdP e IAM, che sono univoci a livello globale, e assicurati che Okta sia indirizzato al tuo account AWS.
  3. Autorizza gli utenti a utilizzare l'applicazione AWS Account Federation selezionando i rispettivi gruppi o singoli account utente. In questo esempio, abbiamo autorizzato gli utenti per gruppo.

Configura gruppi di database Amazon Redshift

Successivamente, imposti i gruppi nel database Amazon Redshift in modo che corrispondano ai gruppi Okta. Autorizzi inoltre questi gruppi ad accedere a determinati schemi e tabelle.

  1. Accedi al tuo cluster Amazon Redshift con un account amministratore.
  2. Crea gruppi che corrispondono ai nomi dei gruppi IdP e concedi le autorizzazioni appropriate a tabelle e schemi:
CREATE GROUP analyst_users;
CREATE GROUP bi_users;

ALTER DEFAULT PRIVILEGES IN SCHEMA sales_analysis
GRANT SELECT on TABLES to GROUP analyst_users;
GRANT USAGE on SCHEMA sales_analysis to GROUP analyst_users;
GRANT SELECT on ALL TABLES in SCHEMA sales_analysis to GROUP analyst_users;

ALTER DEFAULT PRIVILEGES IN SCHEMA sales_bi
GRANT SELECT on TABLES to GROUP bi_users;
GRANT USAGE on SCHEMA sales_bi to GROUP bi_users;
GRANT SELECT on ALL TABLES in SCHEMA sales_bi to GROUP bi_users;

In Okta hai creato l'utente Jane e assegnato Jane Vai all’email analyst_users gruppo.

Nel database Amazon Redshift hai creato due gruppi di database: analyst_users ed bi_users.

Quando l'utente Jane accede tramite autenticazione federata ad Amazon Redshift utilizzando l'editor di query v2, l'utente viene creato se non esiste già e il analyst_users si presuppone il gruppo di database. L'utente Jane può eseguire query sulle tabelle solo in sales_analysis schema.

Perché utente Jane non fa parte del bi_users gruppo, quando tentano di accedere al sales_bi schema, ricevono un errore di autorizzazione negata.

Il diagramma seguente illustra questa configurazione.

Accedi all'editor di query di Amazon Redshift v2

Ora sei pronto per connetterti al tuo cluster Amazon Redshift utilizzando l'editor di query Amazon Redshift v2 utilizzando l'accesso federato. Accedi al tuo account Okta con le tue credenziali utente e sotto Le mie Apps¸ scegli Editor di query Amazon Redshift V2.

Verrai reindirizzato all'URL v2 dell'editor di query di Amazon Redshift che hai specificato come stato di inoltro predefinito.

Connettiti a un database Amazon Redshift ed esegui query

Ora configuriamo la connessione al tuo cluster Amazon Redshift.

  1. Nell'editor di query, scegli il tuo cluster (fai clic con il pulsante destro del mouse) e scegli Crea connessione.
  2. Nel Banca Dati, inserisci un nome.
  3. Nel Autenticazione, selezionare Utente federato.
    Il nome utente è precompilato con le informazioni di accesso federate.
  4. Scegli Crea connessione.

Quando sei connesso al database Amazon Redshift, puoi verificare i dettagli della connessione, come mostrato nello screenshot seguente. Nota l'associazione del gruppo a livello di sessione secondo l'assegnazione del gruppo nella configurazione dell'applicazione Okta. In questo caso, all'utente Jane viene assegnato il file analyst_users gruppo.

Questo utente ha accesso a SELEZIONARE tutte le tabelle in sales_analysis schema e nessun accesso al file sales_bi schema. Puoi eseguire le seguenti istruzioni per testare il tuo accesso.

Lo screenshot seguente mostra i risultati di una query nel file sales_analysis.store_sales_us tabella.

Quando l'utente Jane tenta di accedere alle tabelle in sales_bi schema, ricevono un errore di autorizzazione negata.

Sommario

In questo post, abbiamo dimostrato come federare l'accesso SSO all'editor di query di Amazon Redshift v2 utilizzando Okta come IdP. Abbiamo mostrato come configurare Okta, impostare in modo diverso PrinicpalTag attributi per l'editor di query v2 e trasferire le appartenenze ai gruppi definite nel tuo IdP Okta al cluster Amazon Redshift. Abbiamo mostrato come accedere all'editor di query di Amazon Redshift v2 utilizzando l'accesso federato e convalidare la configurazione eseguendo alcune query. Questa soluzione ti consente di controllare l'accesso agli oggetti del database Amazon Redshift e i tuoi utenti possono accedere facilmente ai cluster Amazon Redshift tramite l'editor di query v2 utilizzando credenziali federate senza gestire utenti e password del database.

Se hai commenti o domande, lasciali nei commenti.


Informazioni sugli autori

Sumeet Joshi è un Analytics Specialist Solutions Architect con sede a New York. È specializzato nella creazione di soluzioni di data warehousing su larga scala. Ha oltre 16 anni di esperienza nel data warehousing e nello spazio analitico.

Bhanu Pittampally è un Analytics Specialist Solutions Architect con sede a Dallas. È specializzato nella costruzione di soluzioni analitiche. Il suo background è in dati e analisi da oltre 14 anni. È possibile trovare il suo profilo LinkedIn qui.

Erol Murtezaoglu, Technical Product Manager di AWS, è un pensatore curioso ed entusiasta con una spinta all'auto-miglioramento e all'apprendimento. Ha una solida e comprovata esperienza tecnica nello sviluppo e nell'architettura del software, bilanciata con la spinta a fornire prodotti di successo commerciale. Erol apprezza molto il processo di comprensione delle esigenze e dei problemi dei clienti, al fine di fornire soluzioni che superano le aspettative.

Yanis Telaoumaten è un ingegnere di sviluppo software presso AWS. Le sue passioni sono la creazione di software affidabili e la creazione di strumenti per consentire ad altri ingegneri di lavorare in modo più efficiente. Negli ultimi anni si è occupato di identità, sicurezza e affidabilità dei servizi Redshift

spot_img

L'ultima intelligenza

spot_img

Parla con noi

Ciao! Come posso aiutarla?