Tutorial: Configurare l'accesso federato per gli utenti Okta in Athena utilizzando Lake Formation e JDBC - Amazon Athena

Tutorial: Configurare l'accesso federato per gli utenti Okta in Athena utilizzando Lake Formation e JDBC

Questo tutorial illustra come configurare le autorizzazioni Okta, AWS Lake Formation e AWS Identity and Access Management e il driver Athena JDBC per abilitare l'utilizzo federato basato su SAML di Athena. Lake Formation fornisce un controllo di accesso dettagliato sui dati disponibili in Athena per l'utente basato su SAML. Per configurare questa configurazione, il tutorial utilizza la console per sviluppatori Okta, le console AWS IAM e Lake Formation e lo strumento SQL Workbench/J.

Prerequisiti

Questo tutorial presuppone che tu abbia eseguito quanto segue:

Fase 1: creare un account Okta

Questo tutorial utilizza Okta come provider di identità basato su SAML. Se non hai già un account Okta, puoi crearne uno gratuito. È necessario un account Okta per poter creare un'applicazione Okta per l'autenticazione SAML.

Per creare un account Okta
  1. Per utilizzare Okta, andare alla pagina di iscrizione per sviluppatori Oktae creare un account di prova Okta gratuito. Il servizio Developer Edition è gratuito fino ai limiti specificati da Okta all'indirizzo developer.okta.com/pricing.

  2. Quando ricevi l'e-mail di attivazione, attiva il tuo account.

    Ti verrà assegnato un nome di dominio Okta. Salva il nome di dominio come riferimento. Successivamente, utilizza il nome di dominio (<okta-idp-domain>) nella stringa JDBC che si connette ad Athena.

Fase 2: aggiungere gli utenti e i gruppi a Okta

In questo passaggio utilizzi la console Okta per i seguenti processi:

  • Creare due utenti Okta.

  • Creare due gruppi Okta.

  • Aggiungere un utente Okta a ciascun gruppo Okta.

Per aggiungere utenti a Okta
  1. Dopo aver attivato l'account Okta, accedere come utente amministrativo al dominio Okta assegnato.

  2. Nel pannello di navigazione a sinistra selezionare Directory e poi Persone.

  3. Scegliere Aggiungi persona per aggiungere un nuovo utente che accederà ad Athena tramite il driver JDBC.

    Scegliere Aggiungi persona.
  4. Nella finestra di dialogo Aggiungi persona, inserire le informazioni richieste.

    • Inserisci i valori per Nome e Cognome. Questo tutorial usa athena-okta-user.

    • Specificare un Nome utente e un'indirizzo email principale. Questo tutorial usa athena-okta-user@anycompany.com.

    • Per Password, scegli Impostato dall'amministratore e quindi fornisci una password. Questo tutorial cancella l'opzione per L'utente deve cambiare la password al primo accesso; i requisiti di sicurezza possono variare.

    Aggiunta di un utente all'applicazione Okta.
  5. Scegliere Salva e aggiungi un altro.

  6. Inserisci le informazioni per un altro utente. In questo esempio viene aggiunto l'utente business analyst athena-ba-user@anycompany.com.

    Aggiunta di un utente all'applicazione Okta.
  7. Selezionare Salva.

Nella procedura seguente, fornisci l'accesso a due gruppi Okta tramite il driver Athena JDBC aggiungendo un gruppo "Business Analysts" e un gruppo "Developer".

Per aggiungere gruppi Okta
  1. Nel pannello di navigazione a sinistra scegli Directory e poi Persone.

  2. Nella pagina Gruppi, scegli Aggiungi gruppo.

    Scegli Add Group (Aggiungi gruppo).
  3. Nella finestra di dialogo Aggiungi gruppo, inserisci le informazioni richieste.

    • Per Nome, inserisci lf-business-analyst.

    • Per Descrizione del gruppo, inserisci Business Analyst.

    Aggiunta di un gruppo Okta.
  4. Scegli Add Group (Aggiungi gruppo).

  5. Nella pagina Gruppi, scegliere di nuovo Aggiungi gruppo. Questa volta inserirai le informazioni per il gruppo Sviluppatori.

  6. Inserisci le informazioni richieste.

    • Per Nome, inserire lf-developer.

    • Per Descrizione del gruppo, inserire Sviluppatori.

  7. Scegli Add Group (Aggiungi gruppo).

Ora che sono disponibili due utenti e due gruppi, è possibile aggiungere un utente a ciascun gruppo.

Per aggiungere utenti ai gruppi
  1. Nella pagina Gruppi scegli il gruppo lf-developer appena creato. Aggiungerai a questo gruppo uno degli utenti Okta che hai creato come sviluppatore.

    Scegli lf-developer.
  2. Scegli Gestisci persone.

    Scegli Gestisci persone.
  3. Dall'elenco Non membri, scegli athena-okta-user.

    Scegli un utente da aggiungere all'elenco dei membri.

    La voce per l'utente si sposta dall'elenco di sinistra Non membri all'elenco di destra Membri.

    Utente Okta aggiunto a un gruppo Okta.
  4. Selezionare Salva.

  5. Scegli Torna al gruppo, oppure scegli Directory, quindi scegli Gruppi.

  6. Seleziona il gruppo lf-business-analyst.

  7. Scegli Gestisci persone.

  8. Aggiungi athena-ba-user all'elenco Membri del gruppo lf-business-analyst, quindi scegli Salva.

  9. Scegli Torna al gruppo, oppure scegli Directory, Gruppi.

    La pagina Gruppi mostra ora che ogni gruppo ha un utente Okta.

    Un utente è stato aggiunto a ciascun gruppo Okta nella console Okta.

Fase 3: configurazione di un'applicazione Okta per l'autenticazione SAML

In questo passaggio utilizzi la console degli sviluppatori Okta per i seguenti processi:

  • Aggiungere un'applicazione SAML da utilizzare con AWS.

  • Assegnare l'applicazione all'utente Okta.

  • Assegnare l'applicazione a un gruppo Okta.

  • Scaricare i metadati del provider di identità risultanti per un utilizzo successivo con AWS.

Per aggiungere un'applicazione per l'autenticazione SAML
  1. Nel pannello di navigazione Okta, selezionare Applicazioni, Applications in modo da poter configurare un'applicazione Okta per l'autenticazione SAML su Athena.

  2. Fare clic su Sfoglia catalogo delle app.

  3. Nella casella di ricerca immetti Redshift.

  4. Scegliere Amazon Web Services Redshift. L'applicazione Okta in questo tutorial utilizza l'integrazione SAML esistente per Amazon Redshift.

    Scegliere Amazon Web Services Redshift.
  5. Sulla pagina Amazon Web Services Redshift, scegliere Aggiungi per creare un'applicazione basata su SAML per Amazon Redshift.

    Scegliere Aggiungi per creare un'applicazione basata su SAML.
  6. Per Etichetta dell'applicazione, inserire Athena-LakeFormation-Okta, quindi scegliere Fine.

    Inserire un nome per l'applicazione.

Dopo aver creato un'applicazione Okta, è possibile assegnarla agli utenti e ai gruppi creati.

Per assegnare l'applicazione a utenti e gruppi
  1. Sulla pagina Applicazioni scegliere l'applicazione Athena-LakeFormation-Okta.

  2. Nella tab Assegnazioni, scegliere Assegna,Assegna alle persone.

    Scegliere Assegna, Assegna alle persone.
  3. Nella finestra di dialogo Assegna Athena-LakeFormation-Okta alle persone, trova l'utente athena-okta-user creato in precedenza.

  4. Scegliere Assegna per assegnare l'utente all'applicazione.

    Scegliere Assign (Assegna).
  5. Scegliere Salva e torna indietro.

  6. Seleziona Fatto.

  7. Nella scheda Assegnazioni per l'applicazione Athena-LakeFormation-Okta, scegli Assegna, Assegna ai gruppi.

  8. Per lf-business-analyst, scegli Assigna per assegnare l'applicazione Athena-LakeFormation-Okta al gruppo lf-business-analyst e seleziona Fine.

    Assegnazione di un'applicazione Okta a un gruppo di utenti Okta.

    Il gruppo viene visualizzato nell'elenco dei gruppi per l'applicazione.

    L'applicazione Okta viene assegnata al gruppo Okta.

Ora puoi scaricare i metadati dell'applicazione del provider di identità per l'utilizzo con AWS.

Per scaricare i metadati dell'applicazione
  1. Scegliere la tab dell'applicazione Okta Accesso e quindi fare clic con il pulsante destro su Metadati del provider di identità.

    Fare clic su Metadati del provider di identità.
  2. Scegliere Salva link con nome per salvare i metadati del provider di identità, che sono in formato XML, in un file. Assegnare un nome che si riconosce (ad esempio, Athena-LakeFormation-idp-metadata.xml).

    Salvataggio dei metadati del provider di identità.

Fase 4: crea un provider di identità AWS SAML e un ruolo IAM per l'accesso a Lake Formation

In questa fase, usi la console AWS Identity and Access Management (IAM) per eseguire le seguenti attività:

  • Creare un provider di identità per AWS.

  • Creare un ruolo IAM per l'accesso a Lake Formation.

  • Aggiungere la policy AmazonAthenaFullAccess gestita al ruolo.

  • Aggiungere una policy per Lake Formation e AWS Glue al ruolo.

  • Aggiungere una policy per i risultati delle query Athena al ruolo.

Per creare un provider di identità AWS SAML
  1. Accedi alla console Account Amazon Web Services comeamministratore dell'account Amazon Web Services e accedi alla console IAM (https://console.aws.amazon.com/iam/).

  2. Nel pannello di navigazione, scegli Provider di identità, quindi clicca su Aggiungi provider.

  3. Nella schermata Configura provider, inserisci le seguenti informazioni:

    • Per Tipo di provider, scegliere SAML.

    • Per Nome provider, inserire AthenaLakeFormationOkta.

    • Per Documento dei metadati, utilizzare l'opzione Scegli file per caricare il file XML dei metadati del provider di identità (IdP) scaricato.

  4. Scegli Aggiungi provider.

Quindi, puoi creare un ruolo IAM per l'accesso di AWS Lake Formation. Aggiungere due policy in linea al ruolo. Una policy fornisce i permessi per accedere a Lake Formation e all'API AWS Glue. L'altra policy fornisce l'accesso ad Athena e alla posizione dei risultati della query Athena in Amazon S3.

Per creare un ruolo IAM per l'accesso di AWS Lake Formation
  1. Nel pannello di navigazione della console IAM, scegliere Ruoli e quindi Crea ruolo.

  2. Nella pagina Crea ruolo, procedere nel seguente modo:

    Configurazione di un ruolo IAM per l'utilizzo di SAML 2.0.
    1. Per Seleziona tipo di entità attendibile, scegliere SAML 2.0 Federation.

    2. Per Provider SAML, seleziona AthenaLakeFormationOkta.

    3. Per Provider SAML, seleziona l'opzione Consenti accesso programmatico e alla Console di gestione AWS.

    4. Scegli Successivo: autorizzazioni.

  3. Sulla pagina Allegare policy autorizzazioni, per Filtra policy inserire Athena.

  4. Selezionare la policy gestita AmazonAthenaFullAccess, quindi scegliere Successivo: tag.

    Allegare la policy gestita AmazonAthenaFullAccess a un ruolo IAM.
  5. Nella pagina Add tags (Aggiungi tag), scegliere Next: Review (Successivo: rivedi).

  6. Nella pagina Rivedi, per Nome ruolo inserire un nome per il ruolo (ad esempio, Athena-LakeFormation-OktaRole), quindi seleziona Crea ruolo.

    Inserire un nome per il ruolo IAM.

Successivamente, aggiungi le policy in linea che consentono l'accesso a Lake Formation, alle API AWS Glue e risultati delle query Athena in Amazon S3.

Ogni volta che si utilizzano le policy IAM, assicurati di seguire le best practice IAM. Per ulteriori informazioni, consulta Best Practice di sicurezza in IAM nella Guida per l'utente di IAM.

Per aggiungere una policy inline al ruolo di Lake Formation e di AWS Glue
  1. Nell'elenco dei ruoli nella console IAM, scegliere il appena creato Athena-LakeFormation-OktaRole.

  2. Nella pagina Riepilogo per il ruolo, nella tab Autorizzazioni scegli Aggiungi policy in linea.

  3. Nella pagina Create policy (Crea policy), scegli JSON.

  4. Aggiungi una policy in linea come la seguente, che fornisce l'accesso a Lake Formation e all'API AWS Glue.

    JSON
    { "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" } }
  5. Scegliere Esamina policy.

  6. Per Nome, inserire un nome per la policy, ad esempio LakeFormationGlueInlinePolicy.

  7. Scegli Crea policy.

Per aggiungere una policy in linea al ruolo per la posizione dei risultati delle query Athena
  1. Nella pagina Riepilogo per il ruolo Athena-LakeFormation-OktaRole, nella tab Autorizzazioni scegli Aggiungi policy in linea.

  2. Nella pagina Create policy (Crea policy), scegli JSON.

  3. Aggiungi una policy in linea come la seguente, che consente al ruolo di accedere alla posizione dei risultati delle query Athena. Sostituisci il segnaposto <athena-query-results-bucket> nell'esempio con il nome del bucket Amazon S3.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AthenaQueryResultsPermissionsForS3", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<athena-query-results-bucket>", "arn:aws:s3:::<athena-query-results-bucket>/*" ] } ] }
  4. Scegliere Esamina policy.

  5. Per Nome, inserire un nome per la policy, ad esempio AthenaQueryResultsInlinePolicy.

  6. Scegli Crea policy.

Successivamente, copia l'ARN del ruolo di accesso Lake Formation e l'ARN del provider SAML creato. Questi sono necessari quando configuri l'applicazione Okta SAML nella sezione successiva dell'esercitazione.

Per copiare l'ARN del ruolo e l'ARN del provider di identità SAML
  1. Dalla console IAM, nella pagina Riepilogo per il ruolo Athena-LakeFormation-OktaRole, scegli l'icona Copia negli appunti accanto ad ARN ruolo. L'ARN ha il formato seguente:

    arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
  2. Salvare l'ARN completo in modo sicuro per riferimento futuro.

  3. Nel pannello di navigazione della console IAM, seleziona Provider di identità.

  4. Seleziona il provider AthenaLakeFormationOkta.

  5. Nella pagina Riepilogo, scegli l'icona Copia negli appunti accanto ad ARN fornitore. L'ARN avrà un aspetto simile al seguente:

    arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta
  6. Salvare l'ARN completo in modo sicuro per riferimento futuro.

Passaggio 5: aggiungere il ruolo IAM e il provider di identità SAML all'applicazione Okta

In questo passaggio, si torna alla console di sviluppo Okta ed eseguire le seguenti attività:

  • Aggiungere attributi URL utente e gruppo Lake Formation all'applicazione Okta.

  • Aggiungere l'ARN per il provider di identità e l'ARN per il ruolo IAM all'applicazione Okta.

  • Copiare l'ID dell'applicazione Okta. L'ID dell'applicazione Okta è obbligatorio nel profilo JDBC che si connette ad Athena.

Per aggiungere attributi URL utente e gruppo Lake Formation all'applicazione Okta
  1. Accedere alla console degli sviluppatori Okta.

  2. Scegli la tab Applicazioni, quindi scegli l'applicazione Athena-LakeFormation-Okta.

  3. Scegliere nella tab Accedi per l'applicazione, quindi scegli Modifica.

    Modificare l'applicazione Okta.
  4. Scegli Attributi (opzionali) per espanderla.

    Aggiunta di un attributo URL utente Lake Formation all'applicazione Okta.
  5. Per Istruzioni degli attributi (opzionali), aggiungi il seguente attributo:

    • Per Nome, immetti https://lakeformation.amazon.com/SAML/Attributes/Username.

    • In Valore, inserire user.login.

  6. Sotto Istruzioni degli attributi per i gruppi (opzionali), aggiungi il seguente attributo:

    • Per Nome, immetti https://lakeformation.amazon.com/SAML/Attributes/Groups.

    • Per Formato nome, inserisci Basic

    • Per Filtro, scegli Corrisponde alla regex, quindi inserisci .* nella casella filtro.

    Aggiunta di un attributo URL gruppo Lake Formation all'applicazione Okta.
  7. Scorri in basso fino alla sezione Impostazioni avanzate di accesso, in cui verranno aggiunti il provider di identità e gli ARN dei ruoli IAM all'applicazione Okta.

Per aggiungere gli ARN per il provider di identità e il ruolo IAM all'applicazione Okta
  1. Pe rARN dell'Idp e ARN del ruolo, inserisci l'ARN del provider di identità AWS e l'ARN del ruolo come valori separati da virgola nel formato <saml-arn>,<role-arn>. La stringa combinata dovrebbe essere simile alla seguente:

    arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta,arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
    Inserimento dell'ARN del provider di identità e dell'ARN del ruolo IAM nell'applicazione Okta.
  2. Selezionare Salva.

Successivamente, copiare l'ID dell'applicazione Okta. Ne avrai bisogno più tardi per la stringa JDBC che si connette ad Athena.

Per trovare e copiare l'ID dell'applicazione Okta
  1. Selezionare la tab Generale dell'applicazione Okta.

    Selezionare la tab Generale dell'applicazione Okta.
  2. Scorri in basso fino alla sezione Link per l'incorporamento dell'app.

  3. Da Incorpora link, copia e salva in modo sicuro la porzione dell'ID dell'applicazione Okta dell'URL. L'ID dell'applicazione Okta è la parte dell'URL dopo amazon_aws_redshift/ ma prima della barra in avanti successiva. Ad esempio, se l'URL contiene amazon_aws_redshift/aaa/bbb, l'ID dell'applicazione è aaa.

    Copia l'ID dell'applicazione Okta.
Nota

Il link per l'incorporamento non può essere utilizzato per accedere direttamente alla console Athena per visualizzare i database. Le autorizzazioni Lake Formation per utenti e gruppi SAML vengono riconosciute solo quando si utilizza il driver JDBC oppure ODBC per inviare query ad Athena. Per visualizzare i database, puoi utilizzare lo strumento SQL Workbench/J, che utilizza il driver JDBC per connettersi ad Athena. Lo strumento SQL Workbench/J viene descritto in Passaggio 7: Verificare l'accesso tramite il client Athena JDBC.

Fase 6: concedere di autorizzazioni agli utenti e ai gruppi tramite AWS Lake Formation

In questo passaggio, utilizzi la console Lake Formation per concedere autorizzazioni per una tabella all'utente e al gruppo SAML. Si possono eseguire queste attività:

  • Specificare l'ARN dell'utente Okta SAML e le autorizzazioni utente associate nella tabella.

  • Specificare l'ARN del gruppo Okta SAML e le autorizzazioni gruppo associate nella tabella.

  • Verificare le autorizzazioni concesse.

Per concedere autorizzazioni in Lake Formation per l'utente Okta
  1. Accedi come amministratore data lake alla Console di gestione AWS.

  2. Aprire la console Lake Formation all'indirizzo https://console.aws.amazon.com/lakeformation/.

  3. Dal pannello di navigazione, seleziona Tabelle, quindi seleziona la tabella per la quale desideri concedere le autorizzazioni. Questo tutorial utilizza la tabella nyctaxi dal database tripdb.

    Scegliere la tabella per la quale si desiderano concedere le autorizzazioni.
  4. Da Operazioni, scegliere Concessione.

    Scegli Concessione.
  5. Nella finestra di dialogo Concedi autorizzazioni inserisci le seguenti informazioni:

    1. Sotto Utenti e gruppi SAML e Amazon Quick Suite, inserisci l'ARN dell'utente Okta SAML nel seguente formato:

      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:user/<athena-okta-user>@<anycompany.com>
    2. Per Colonne, per Scegli il tipo di filtro e, facoltativamente, scegli Includi colonne o Escludi colonne.

    3. Usa il menu a discesa Scegli una o più colonne sotto il filtro per specificare le colonne che desideri includere o escludere per o dall'utente.

    4. Per Autorizzazioni tabella, scegli Seleziona. Questa esercitazione concede solo l'autorizzazione SELECT; i requisiti possono variare.

      Concedere autorizzazioni a livello di tabella e colonna a un utente Okta.
  6. Scegli Concessione.

Ora eseguire passaggi simili per il gruppo Okta.

Per concedere autorizzazioni in Lake Formation per il gruppo Okta
  1. Sulla pagina Tabelle della console Lake Formation, assicurarsi che la tabella nyctaxi sia ancora selezionata.

  2. Da Operazioni, scegliere Concessione.

  3. Nella finestra di dialogo Concedi autorizzazioni inserisci le seguenti informazioni:

    1. Sotto Utenti e gruppi SAML e Amazon Quick Suite, inserisci l'ARN del gruppo Okta SAML nel seguente formato:

      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:group/lf-business-analyst
    2. PerColonne,scegli il tipo di filtro, scegli Includi colonne.

    3. Per Scegli una o più colonne, scegliere le prime tre colonne della tabella.

    4. Per Autorizzazioni tabella, scegli le autorizzazioni di accesso specifiche da concedere. Questa esercitazione concede solo l'autorizzazione SELECT; i requisiti possono variare.

      Concessione delle autorizzazioni per la tabella a un gruppo Okta.
  4. Scegli Concessione.

  5. Per verificare le autorizzazioni concesse, scegli Azioni, Visualizza autorizzazioni.

    Scegliere Visualizzazione delle autorizzazioni per verificare le autorizzazioni concesse.

    La pagina Data permissions per la tabella nyctaxi mostra le autorizzazioni per athena-okta-user e il gruppo lf-business-analyst.

    Visualizzazione delle autorizzazioni concesse all'utente e al gruppo Okta.

Passaggio 7: Verificare l'accesso tramite il client Athena JDBC

Ora puoi utilizzare un client JDBC per eseguire una connessione di prova ad Athena come utente Okta SAML.

In questa sezione esegui le seguenti attività:

  • Prepara il client test: scarica il driver Athena JDBC, installa SQL Workbench e aggiungi il driver a Workbench. Questo tutorial utilizza SQL Workbench per accedere ad Athena tramite l'autenticazione Okta e per verificare le autorizzazioni Lake Formation.

  • In SQL Workbench:

    • Creare una connessione per l'utente Athena Okta.

    • Eseguire query di test come utente Athena Okta.

    • Creare e testare una connessione per l'utente business analyst.

  • Nella console Okta, aggiungere l'utente business analyst al gruppo di sviluppatori.

  • Nella console Lake Formation, configurare le autorizzazioni di tabella per il gruppo di sviluppatori.

  • In SQL Workbench, esegui query di test come utente business analyst e verifica in che modo la modifica delle autorizzazioni influisce sui risultati.

Per preparare il client di test
  1. Scaricare ed estrarre il driver Athena JDBC compatibile con Lake Formation (2.0.14 o versione successiva) da Connettersi ad Amazon Athena con JDBC.

  2. Scaricare e installare lo strumento di query SQL gratuito SQL Workbench/J disponibile con una licenza Apache 2.0 modificata.

  3. In SQL Workbench, scegliere File, quindi scegliere Gestisci driver.

    Seleziona Manage Drivers (Gestisci driver).
  4. Nella finestra di dialogo Gestisci driver completare la seguente procedura:

    1. Scegliere l'icona del nuovo driver.

    2. Per Nome, immetti Athena.

    3. Per Libreria, scegliere il file .jar Simba Athena JDBC appena scaricato.

    4. Scegli OK.

      Aggiungere il driver JDBC Athena a SQL Workbench.

Ora puoi creare e testare una connessione per l'utente Athena Okta.

Per creare una connessione per l'utente Okta
  1. Scegliere File, Finestra Connect.

    Scegliere Finestra Connect.
  2. Nella finestra di dialogo Profilo di connessione creare una connessione inserendo le informazioni seguenti:

    • Nella casella Nome, inserire Athena_Okta_User_Connection.

    • Per Driver, scegliere il driver JDBC Simba Athena.

    • Per l'URL, esegui una delle seguenti operazioni:

      • Per utilizzare un URL di connessione, inserire una stringa di connessione a riga singola. L'esempio seguente aggiunge interruzioni di riga per migliorare la leggibilità.

        jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-okta-user@anycompany.com; password=password; idp_host=okta-idp-domain; App_ID=okta-app-id; SSL_Insecure=true; LakeFormationEnabled=true;
      • Per utilizzare un URL AWS basato sul profilo, procedere nel seguente modo:

        1. Configura un profilo AWS con un file di credenziali AWS come nell'esempio seguente.

          [athena_lf_dev] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domain app_id=okta-app-id uid=athena-okta-user@anycompany.com pwd=password
        2. Per URL, inserisci una stringa di connessione a riga singola come nel seguente esempio. L'esempio aggiunge interruzioni di riga per migliorare la leggibilità.

          jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_dev; SSL_Insecure=true; LakeFormationEnabled=true;

      Questi esempi sono rappresentazioni di base dell'URL necessario per connettersi ad Athena. Per l'elenco completo dei parametri supportati nell'URL, consulta la documentazione JDBC.

    L'immagine seguente mostra un profilo di connessione SQL Workbench che utilizza un URL di connessione.

    Un profilo di connessione in SQL Workbench.

Dopo aver stabilito una connessione per l'utente Okta, è possibile testarla recuperando alcuni dati.

Per testare la connessione per l'utente Okta
  1. Scegli Test e quindi verifica che la connessione abbia esito positivo.

  2. Dalla finestra Istruzione di SQL Workbench, eseguire il comando SQL DESCRIBE seguente. Verificare che siano mostrate tutte le colonne.

    DESCRIBE "tripdb"."nyctaxi"
    Vengono mostrate tutte le colonne
  3. Dalla finestra Istruzione di SQL Workbench, eseguire il comando SQL SELECT seguente. Verificare che siano mostrate tutte le colonne.

    SELECT * FROM tripdb.nyctaxi LIMIT 5
    Verificare che siano mostrate tutte le colonne.

Successivamente, è necessario verificare che l'athena-ba-user, in qualità di membro del gruppo lf-business-analyst, abbia accesso solo alle prime tre colonne della tabella specificate in precedenza in Lake Formation.

Per verificare l'accesso per athena-ba-user
  1. In SQL Workbench, nella finestra di dialogo Profilo di connessione creare un altro profilo di connessione.

    • Per il nome del profilo di connessione, inserire Athena_Okta_Group_Connection.

    • Per Driver, scegliere il driver JDBC Simba Athena.

    • Per l'URL, esegui una delle seguenti operazioni:

      • Per utilizzare un URL di connessione, inserire una stringa di connessione a riga singola. L'esempio seguente aggiunge interruzioni di riga per migliorare la leggibilità.

        jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-ba-user@anycompany.com; password=password; idp_host=okta-idp-domain; App_ID=okta-application-id; SSL_Insecure=true; LakeFormationEnabled=true;
      • Per utilizzare un URL AWS basato sul profilo, procedere nel seguente modo:

        1. Configura un profilo AWS con un file delle credenziali come nell'esempio seguente.

          [athena_lf_ba] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domain app_id=okta-application-id uid=athena-ba-user@anycompany.com pwd=password
        2. Per URL, inserire una stringa di connessione a riga singola come la seguente. L'esempio aggiunge interruzioni di riga per migliorare la leggibilità.

          jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_ba; SSL_Insecure=true; LakeFormationEnabled=true;
  2. Scegli Test per confermare che la connessione funzioni.

  3. Dalla finestra Istruzione SQL, eseguire gli stessi comandi SQL DESCRIBE e SELECT eseguiti in precedenza ed esaminare i risultati.

    Poiché athena-ba-user è un membro del gruppo lf-business-analyst, vengono restituite solo le prime tre colonne specificate nella console Lake Formation.

    Vengono restituite solo le prime tre colonne.
    Dati delle prime tre colonne.

Successivamente, si torna alla console Okta per aggiungere athena-ba-user al gruppo Okta lf-developer.

Per aggiungere athena-ba-user al gruppo lf-developer
  1. Accedi alla console Okta come utente amministratore del dominio Okta assegnato.

  2. Scegli Directory e quindi scegli Gruppi.

  3. Nella pagina Gruppi scegli il gruppo lf-developer.

    Seleziona il gruppo lf-developer.
  4. Scegli Gestisci persone.

  5. Dall'elenco Non membri, seleziona athena-ba-user per aggiungere l'utente al gruppo lf-developer.

  6. Selezionare Salva.

Ora torna alla console Lake Formation per configurare le autorizzazioni di tabella per il gruppo lf-developer.

Per configurare le autorizzazioni della tabella per il gruppo lf-developer-group
  1. Accedi alla console Lake Formation come amministratore Data Lake.

  2. Nel pannello di navigazione, seleziona Tabelle.

  3. Seleziona la tabella nyctaxi.

  4. Scegli Operazioni, Concessione.

  5. Nella finestra di dialogo Concessione di autorizzazioni inserire le informazioni riportate di seguito:

    • Per Utenti e gruppi SAML e Amazon Quick Suite, inserisci l'ARN del gruppo Okta SAML lf-developer nel seguente formato:

    • PerColonne,scegli il tipo di filtro, scegli Includi colonne.

    • Seleziona la colonna trip_type.

    • Per Autorizzazioni tabella, scegli SELEZIONA.

  6. Scegli Concessione.

Ora è possibile utilizzare SQL Workbench per verificare la modifica delle autorizzazioni per il gruppo lf-developer. La modifica dovrebbe riflettersi sui dati disponibili per athena-ba-user, che ora è membro del gruppo lf-developer.

Per verificare la modifica delle autorizzazioni per athena-ba-user
  1. Chiudere il programma SQL Workbench e quindi riaprirlo.

  2. Connettiti al profilo per athena-ba-user.

  3. Dalla finestra Istruzione, emettere le stesse istruzioni SQL eseguite in precedenza:

    Questa volta, viene mostrata la colonna trip_type.

    La quarta colonna è disponibile per la query.

    Poiché athena-ba-user è ora membro di entrambi i gruppi lf-developer e lf-business-analyst, la combinazione di autorizzazioni Lake Formation per tali gruppi determina le colonne restituite.

    La quarta colonna nei risultati dei dati.

Conclusioni

In questo tutorial hai configurato l'integrazione di Athena con AWS Lake Formation utilizzando Okta come provider SAML. Hai usato Lake Formation e IAM per controllare le risorse disponibili per l'utente SAML nel catalogo dati AWS Glue del data lake.

Per informazioni correlate, consulta le seguenti risorse.