

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à.

# Usare la propagazione attendibile delle identità tramite i driver Amazon Athena
<a name="using-trusted-identity-propagation"></a>

La propagazione attendibile delle identità offre una nuova opzione di autenticazione per le organizzazioni che desiderano centralizzare la gestione delle autorizzazioni dei dati e autorizzare le richieste in base alla propria identità IdP attraverso i confini del servizio. Con IAM Identity Center, puoi configurare un IdP esistente per gestire utenti e gruppi e utilizzarlo per definire autorizzazioni di controllo degli accessi granulari sulle risorse del catalogo AWS Lake Formation per queste identità IdP. Athena supporta la propagazione delle identità durante l’esecuzione di query sui dati per verificare l’accesso agli stessi da parte delle identità IdP per aiutare l’organizzazione a soddisfare i requisiti normativi e di conformità.

Ora è possibile connettersi ad Athena utilizzando i driver Java Database Connectivity (JDBC) o Open Database Connectivity (ODBC) con funzionalità Single Sign-on tramite IAM Identity Center. Quando accedi ad Athena da strumenti come PowerBI, Tableau oppure DBeaver, la tua identità e le tue autorizzazioni si propagano automaticamente ad Athena tramite IAM Identity Center. Ciò significa che le autorizzazioni individuali di accesso ai dati vengono applicate direttamente durante l’esecuzione di query sui dati, senza richiedere passaggi di autenticazione o gestione delle credenziali separati.

Per gli amministratori, questa funzionalità centralizza il controllo degli accessi tramite IAM Identity Center e Lake Formation, garantendo un'applicazione coerente delle autorizzazioni su tutti gli strumenti di analisi supportati che si collegano ad Athena. Per iniziare, assicurarsi che la propria organizzazione abbia configurato IAM Identity Center come origine identità e che abbia configurato le autorizzazioni appropriate di accesso ai dati per gli utenti.

**Topics**
+ [Definizioni principali](#using-trusted-identity-propagation-key-definitions)
+ [Considerazioni](#using-trusted-identity-propagation-considerations)
+ [Prerequisiti](#using-trusted-identity-propagation-prerequisites)
+ [Collegare Athena a IAM Identity Center](using-trusted-identity-propagation-setup.md)
+ [Configura e distribuisci le risorse utilizzando AWS CloudFormation](using-trusted-identity-propagation-cloudformation.md)

## Definizioni principali
<a name="using-trusted-identity-propagation-key-definitions"></a>

1. **Ruolo dell'applicazione**: ruolo per lo scambio di token, il recupero dell'ARN dell'applicazione AWS IAM Identity Center gestita dal gruppo di lavoro e dal cliente.

1. **Ruolo di accesso**: ruolo da utilizzare con i driver Athena per l’esecuzione dei flussi di lavoro dei clienti con credenziali Identity Enhanced. Ciò significa che questo ruolo è necessario per accedere ai servizi downstream.

1. **Applicazione gestita dal cliente**: l’applicazione AWS IAM Identity Center. Per ulteriori informazioni, consultare [Applicazione gestita dal cliente](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps.html).

## Considerazioni
<a name="using-trusted-identity-propagation-considerations"></a>

1. Questa funzionalità è disponibile solo per le regioni in cui Athena è generalmente disponibile con la propagazione attendibile delle identità. Per ulteriori informazioni sulla disponibilità, consultare [Considerazioni e limitazioni](https://docs.aws.amazon.com/athena/latest/ug/workgroups-identity-center.html).

1. I driver JDBC e ODBC supportano la propagazione affidabile delle identità con gruppi di lavoro compatibili con IAM.

1. È possibile utilizzare sia JDBC che ODBC come driver autonomi o con qualsiasi strumento di BI o SQL con propagazione attendibile dell’identità utilizzando questo plug-in di autenticazione.

## Prerequisiti
<a name="using-trusted-identity-propagation-prerequisites"></a>

1. È necessario che un'istanza IAM Identity Center sia abilitata. AWS Per ulteriori informazioni, consultare [What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/identity-center-instances.html).

1. È necessario disporre di un provider di identità esterno funzionante e gli utenti o i gruppi devono essere presenti in AWS IAM Identity Center. È possibile effettuare il provisioning dei propri utenti o gruppi automaticamente, manualmente o con SCIM. Per ulteriori informazioni, consultare [Provisioning di un provider di identità esterno in IAM Identity Center utilizzando SCIM](https://docs.aws.amazon.com/singlesignon/latest/userguide/provision-automatically.html).

1. È necessario concedere le autorizzazioni Lake Formation a utenti o gruppi per cataloghi, database e tabelle. Per ulteriori informazioni, consultare [Utilizzare Athena per eseguire query con Lake Formation](https://docs.aws.amazon.com/athena/latest/ug/security-athena-lake-formation.html).

1. È necessario disporre di uno strumento di BI o di un client SQL funzionante per eseguire le query Athena utilizzando il driver JDBC o ODBC.

# Collegare Athena a IAM Identity Center
<a name="using-trusted-identity-propagation-setup"></a>

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

## Impostare emittente di token affidabile
<a name="using-trusted-identity-propagation-step1"></a>

Seguire la guida [Impostare un emittente attendibile di token](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html).

## Configurare ruoli IAM
<a name="using-trusted-identity-propagation-step2"></a>

### Impostare il ruolo dell’applicazione IAM
<a name="using-trusted-identity-propagation-step2-application-role"></a>

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

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

1. 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.

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

1. Aggiungi la seguente policy in linea per concedere l'accesso all'utente per [CreateTokenWithIAM](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateTokenWithIAM.html) e [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)le [ListTagsForResource](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListTagsForResource.html)autorizzazioni.

------
#### [ 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.

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

### Impostare il ruolo di accesso IAM
<a name="using-trusted-identity-propagation-step2-access-role"></a>

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

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

1. 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.

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

1. 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": "*"
           }
       ]
   }
   ```

------

1. Copiare l’ARN per il ruolo di accesso.

## Configura l'applicazione gestita AWS IAM Identity Center dal cliente
<a name="using-trusted-identity-propagation-step3"></a>

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](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.html) 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](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.html#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-application-credentials), 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\$1write** e s3:access\$1grants:read\$1write per i gruppi di lavoro abilitati per Identity Center.******

## Configurazione dell’associazione del gruppo di lavoro
<a name="using-trusted-identity-propagation-step4"></a>

1. Nel pannello di navigazione della console Athena, scegliere**Workgroups**.

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

1. Scegliere **Manage tags** e inserire quanto segue:

   1. **Chiave**: `AthenaDriverOidcAppArn`

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

1. 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

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

1. **workgroupARN**: l’ARN del gruppo di lavoro Athena

1. **JwtRoleSessionName**— Il nome della sessione per il ruolo JWT

1. **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à
<a name="using-trusted-identity-propagation-step5"></a>

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](jdbc-v3-driver-getting-started.md). È possibile scegliere di installare i driver ODBC in base alla piattaforma supportata. Per ulteriori informazioni, consultare [Guida introduttiva al driver ODBC 2.x](odbc-v2-driver-getting-started.md). In base al driver che si desidera utilizzare, fornire i parametri elencati in:
+ [Parametri di connessione del plug-in di autenticazione JDBC](jdbc-v3-driver-jwt-tip-credentials.md)
+ [Parametri di connessione del plugin di autenticazione ODBC](odbc-v2-driver-jwt-tip.md)

**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
<a name="using-trusted-identity-propagation-step6"></a>

1. Scaricare il jar JDBC più recente con dipendenze da Athena. Per ulteriori informazioni, consulta [Driver JDBC 3.x di Athena](jdbc-v3-driver.md).

1. Apri l' DBeaver applicazione sul tuo computer.

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

1. Scegliere **New** e poi **Libraries**.

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

1. Aprire la scheda **Settings** e fornire i seguenti campi

   1. **Driver name**: Athena JDBC trusted identity propagation

   1. **Class name**: `com.amazon.athena.jdbc.AthenaDriver`

   1. Selezionare l’opzione **No authentication**.

1. 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](jdbc-v3-driver-getting-started.md#jdbc-v3-driver-configuring-the-driver).

1. 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](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroup.html).

   1. **Regione**: il Regione AWS luogo in cui verranno eseguite le interrogazioni. Per un elenco delle regioni, consulta [Endpoint e quote di Amazon Athena](https://docs.aws.amazon.com/general/latest/gr/athena.html).

   1. **OutputLocation**— La posizione in Amazon S3 in cui desideri archiviare i risultati delle query. Per informazioni sulla posizione di output, consulta [ResultConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_ResultConfiguration.html).

   1. **CredentialsProvider**— Invio`JWT_TIP`.

   1. **ApplicationRoleArn**— L'ARN del ruolo da abilitare. `AssumeRoleWithWebIdentity` Per ulteriori informazioni sui ruoli ARN, consulta il riferimento [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)all' AWS Security Token Service API.

   1. **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](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroup.html)

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

   1. **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>;
      ```

1. 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](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-apps-with-trusted-token-issuer.html#trusted-token-issuer-prerequisites). 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](odbc-v2-driver-jwt-tip.md#odbc-v2-driver-jwt-tip-file-cache) 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.

1. Aprire l’**editor diquery SQL** e iniziare a eseguire le query. Consultarei [log di Cloudtrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) per verificare l’identità diffusa dell’utente.

# Configura e distribuisci le risorse utilizzando AWS CloudFormation
<a name="using-trusted-identity-propagation-cloudformation"></a>

È possibile configurare e distribuire risorse utilizzando CloudFormation modelli per iniziare a utilizzare i driver Trusted Identity Propagation con Athena come segue.

1. Scarica un CloudFormation modello per configurare l'applicazione gestita dal cliente IAM Identity Center e i ruoli di accesso insieme ai tag del gruppo di lavoro e dell'applicazione IAM Identity Center. Puoi scaricarlo da questo [link al CloudFormationCloudFormation modello](https://downloads.athena.us-east-1.amazonaws.com/drivers/CFNTemplate/AthenaDriversTrustedIdentityPropagationCFNTemplate.yaml) .

1. Esegui il `create-stack` AWS CLI comando per distribuire lo CloudFormation stack che fornirà le risorse configurate come segue.

   ```
   aws cloudformation create-stack \
       --stack-name my-stack \
       --template-url URL_of_the_file_that_contains_the_template_body \
       --parameters file://params.json
   ```

1. Per visualizzare lo stato del provisioning delle risorse, accedere alla console CloudFormation . Una volta completata la creazione del cluster, visualizzare la nuova applicazione IAM Identity Center nella console di Identity Center. È possibile visualizzare i ruoli IAM nella console IAM. 

   I tag verranno associati nell’applicazione Workgroup e nell’applicazione IAM Identity Center.

1. Utilizzando i ruoli e l’applicazione creati, è possibile utilizzare immediatamente i driver Athena. Per utilizzare il driver JDBC, consultare i [parametri di connessione del plug-in diautenticazione JDBC](jdbc-v3-driver-jwt-tip-credentials.md). Per utilizzare il driver ODBC, consultare i [parametri di connessione del plug-in di autenticazione ODBC](odbc-v2-driver-jwt-tip.md).