Collegare Athena a IAM Identity Center - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Collegare Athena a IAM Identity Center

La sezione seguente elenca il processo di collegamento di Athena a IAM Identity Center.

Impostare emittente di token affidabile

Seguire la guida Impostare un emittente attendibile di token per configurare un emittente di token attendibile. Questo creerà un AWS IAM Identity Center.

Nota

Per Tipo provider, scegliere OpenID Connect. Per URL Provider, inserire l’URL dell’emittente del proprio provider di identità. Per Audience, specificare l’ID cliente rilasciato dal provider di identità per la propria app.

Copia l'Application Resource Name (ARN) per il provider di identità AWS IAM. Per ulteriori informazioni, consulta Provider di identità e federazione.

Configurare ruoli IAM

Impostare il ruolo dell’applicazione IAM

  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione sinistro, scegliere Roles, quindi Create role.

  3. Per Trusted entity type, scegli Custom trust policy.

    1. Per Federated Principal, aggiungere l’ARN AWS per il provider di identità IAM copiato durante la configurazione dell’emittente di token attendibile.

    2. Per verificare le condizioni del policy, aggiungere l’audience del provider di identità federato esterno.

  4. Aggiungi la seguente policy in linea per concedere l'accesso all'utente per CreateTokenWithIAM e AssumeRoleWithWebIdentityle ListTagsForResourceautorizzazioni.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListTags*", "sso:ListTags*" ], "Resource": "*" } ] }
    Nota

    Le autorizzazioni CreateTokenWithIam vengono fornite nell’applicazione IAM Identity Center gestita dal cliente.

  5. Copiare l’ARN per il ruolo dell’applicazione.

Impostare il ruolo di accesso IAM

  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione sinistro, scegliere Roles, quindi Create role.

  3. Per Trusted entity type, scegliere Custom trust policy come segue:

    1. Per Federated Principal, aggiungere l’ARN AWS per IAM Identity Center copiato durante la configurazione dell’emittente di token affidabile.

    2. Per AWS Principal, aggiungere l’ARN per il ruolo dell’applicazione IAM AWS copiato durante la configurazione del ruolo dell’applicazione IAM.

  4. Aggiungere la seguente inline policy per concedere l’accesso ai flussi di lavoro dei driver:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:ListWorkGroups", "athena:ListDataCatalogs", "athena:ListDatabases", "athena:ListTableMetadata" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:GetTable", "glue:GetTables", "glue:UpdateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:GetTableVersion", "glue:GetTableVersions", "glue:DeleteTableVersion", "glue:BatchDeleteTableVersion", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:UpdatePartition", "glue:DeletePartition", "glue:BatchDeletePartition" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" } ] }
  5. Copiare l’ARN per il ruolo di accesso.

Configura l'applicazione gestita AWS IAM Identity Center dal cliente

Per configurare un'applicazione gestita dal cliente, segui i passaggi in Configurare applicazioni OAuth 2.0 gestite dal cliente per la propagazione delle identità affidabili con le seguenti considerazioni per Athena.

  • Per Tags, aggiungere le seguenti coppie chiave-valore:

    • Chiave: AthenaDriverOidcAppArn

    • Valore: AccessRoleARN copiato durante la configurazione del ruolo di accesso IAM.

  • Quando specifichi le credenziali dell'applicazione, aggiungi l'ARN per il ruolo dell'applicazione AWS IAM che hai copiato durante la configurazione del ruolo dell'applicazione IAM.

  • Per le Applications that can receive requests, scegliere AWS-Lake-Formation-AWS-Glue-Data-Catalog-<account-id>.

  • Per applicare gli ambiti di Access, seleziona lakeformation:query per i gruppi di lavoro abilitati a IAM o lakeformation:query, athena:workgroup:read_write e s3:access_grants:read_write per i gruppi di lavoro abilitati per Identity Center.

Configurazione dell’associazione del gruppo di lavoro

  1. Nel pannello di navigazione della console Athena, scegliereWorkgroups.

  2. Scegliere un gruppo di lavoro dall’elenco e aprire la scheda Tag.

  3. Scegliere Manage tags e inserire quanto segue:

    1. Chiave: AthenaDriverOidcAppArn

    2. Valore: ARN per l’applicazione AWS IAM Identity Center .

  4. Scegli Save (Salva).

Una volta completata la configurazione una tantum, gli amministratori possono distribuire i dettagli essenziali della connessione ai propri utenti. Gli utenti hanno bisogno di questi cinque parametri obbligatori per eseguire carichi di lavoro SQL:

  1. ApplicationRoleARN — L'ARN del ruolo dell'applicazione

  2. JwtWebIdentityToken— Il token JWT per la verifica dell'identità

  3. workgroupARN: l’ARN del gruppo di lavoro Athena

  4. JwtRoleSessionName— Il nome della sessione per il ruolo JWT

  5. CredentialsProvider— La configurazione del provider di credenziali

Nota

Abbiamo semplificato la configurazione della stringa di connessione tramite tag strategici. Etichettando correttamente sia il gruppo di lavoro Athena che l'applicazione gestita dal cliente, gli amministratori eliminano la necessità per gli utenti di fornire AWS IAM Identity Center e. AccessRoleArn CustomerIdcApplicationArn Il plugin gestisce il tutto automaticamente utilizzando il ruolo dell’applicazione per individuare i tag necessari e recuperare i valori ARN corrispondenti per il suo flusso di lavoro.

Gli amministratori possono comunque fare in modo che gli utenti forniscano AccessRoleArn o CustomerIdcApplicationArn nella stringa di connessione modificando le autorizzazioni del ruolo dell’applicazione in base alle esigenze.

Eseguire query utilizzando driver Athena attendibili abilitati alla propagazione delle identità

Scaricare la versione più recente del driver che si desidera utilizzare. Per ulteriori informazioni sull’installazione JDBC, consultare Inizia a usare il driver JDBC 3.x. È possibile scegliere di installare i driver ODBC in base alla piattaforma supportata. Per ulteriori informazioni, consultare Guida introduttiva al driver ODBC 2.x. In base al driver che si desidera utilizzare, fornire i parametri elencati in:

Nota

La propagazione attendibile delle identità con i driver è disponibile solo dopo la versione 3.6.0 in JDBC e la versione 2.0.5.0 in ODBC.

Usa i driver Athena e la propagazione affidabile delle identità con DBeaver

  1. Scaricare il jar JDBC più recente con dipendenze da Athena. Per ulteriori informazioni, consulta Driver JDBC 3.x di Athena.

  2. Apri l' DBeaver applicazione sul tuo computer.

  3. Andare al menu Database nella parte superiore dello schermo, quindi scegliere Driver Manager.

  4. Scegliere New e poi Libraries.

  5. Aggiungere il driver più recente e scegliere Find class. Ciò fornirà un percorso del file simile a com.amazon.athena.jdbc.AthenaDriver.

  6. Aprire la scheda Settings e fornire i seguenti campi

    1. Driver name: Athena JDBC trusted identity propagation

    2. Class name: com.amazon.athena.jdbc.AthenaDriver

    3. Selezionare l’opzione No authentication.

  7. Scegliere Connect to a database e trovare Athena JDBC Trusted Identity Propagation. Si verrà reindirizzati all’URL JDBC. Per ulteriori informazioni, consultare Configurazione del driver.

  8. Fornire i seguenti dettagli:

    1. Gruppo di lavoro: il gruppo di lavoro in cui si desidera eseguire le interrogazioni. Per informazioni sui gruppi di lavoro, vedere WorkGroup.

    2. Regione: il Regione AWS luogo in cui verranno eseguite le interrogazioni. Per un elenco delle regioni, consulta Endpoint e quote di Amazon Athena.

    3. OutputLocation— La posizione in Amazon S3 in cui desideri archiviare i risultati delle query. Per informazioni sulla posizione di output, consulta ResultConfiguration.

    4. CredentialsProvider— InvioJWT_TIP.

    5. ApplicationRoleArn— L'ARN del ruolo da abilitare. AssumeRoleWithWebIdentity Per ulteriori informazioni sui ruoli ARN, consulta il riferimento AssumeRoleall' AWS Security Token Service API.

    6. WorkgroupArn— L'ARN del gruppo di lavoro in cui verranno eseguite le interrogazioni. Deve essere lo stesso gruppo di lavoro fornito nel campo Workgroup. Per informazioni sui gruppi di lavoro, vedere. WorkGroup

    7. JwtRoleSessionName— Il nome della sessione quando si utilizzano le credenziali JWT per l'autenticazione. Può essere un nome a scelta.

    8. JwtWebIdentityToken— Il token JWT ottenuto da un provider di identità federato esterno. Questo token è utilizzato per l’autenticazione con Athena.

      jdbc:athena://Workgroup=<value>;Region=<region>;OutputLocation=<location>;CredentialsProvider=JWT_TIP;ApplicationRoleArn=<arn>;WorkgroupArn=<arn>;JwtRoleSessionName=JDBC_TIP_SESSION;JwtWebIdentityToken=<token>;
  9. Scegli OK e chiudi la finestra. DBeaver inizierai a caricare i metadati dopo questo passaggio e dovresti iniziare a vedere i tuoi cataloghi, database e tabelle che si popolano.

    Nota

    Se la dichiarazione JTI è presente nel token e si sceglie Test connection prima di scegliere OK, ciò impedisce che la stessa JTI venga riutilizzata per gli scambi di token. Per ulteriori informazioni, consultare Prerequisiti e considerazioni per emittenti di token attendibili. Per gestire ciò, JDBC implementa una cache in memoria, il cui ciclo di vita dipende dall’istanza principale del driver. Per ODBC, è disponibile opzionalmente una cache di file che consente di memorizzare nella cache le credenziali temporanee e di riutilizzarle per ridurre il numero di token di identità Web utilizzati durante il ciclo di vita della sessione.

  10. Aprire l’editor diquery SQL e iniziare a eseguire le query. Consultarei log di Cloudtrail per verificare l’identità diffusa dell’utente.