

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

# Gestione dell'identità e dell'accesso in Athena
<a name="security-iam-athena"></a>

Amazon Athena utilizza le policy [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) per limitare l'accesso alle operazioni Athena. Per l'elenco completo delle autorizzazioni per Athena, consulta [Operazioni, risorse e chiavi di condizione per Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) nella *Referenza sulle autorizzazioni per il servizio*.

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

Le autorizzazioni richieste per eseguire query Athena includono:
+ Posizioni Amazon S3 in cui sono archiviati i dati sottostanti. Per maggiori informazioni, consulta [Identity and Access Management in Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) nella *Guida per l'utente di Amazon Simple Storage*.
+ Metadati e risorse archiviati in AWS Glue Data Catalog, come database e tabelle, incluse azioni aggiuntive per i metadati crittografati. Per ulteriori informazioni, consulta [Impostazione delle autorizzazioni IAM per AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/getting-started-access.html) e [Configurazione della crittografia in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/set-up-encryption.html) nella *Guida per gli sviluppatori di AWS Glue *.
+ Operazioni API Athena. Per un elenco completo delle operazioni in Athena, consulta [Operazioni](https://docs.aws.amazon.com/athena/latest/APIReference/API_Operations.html) nella *Referenza per l'API Amazon Athena*.

I seguenti argomenti forniscono ulteriori informazioni sulle autorizzazioni per aree specifiche di Athena.

**Topics**
+ [AWS politiche gestite](security-iam-awsmanpol.md)
+ [Perimetri di dati](data-perimeters.md)
+ [Accesso tramite connessioni JDBC e ODBC](policy-actions.md)
+ [Controllo dell’accesso ad Amazon S3 da Athena](s3-permissions.md)
+ [Accesso tra account a bucket S3](cross-account-permissions.md)
+ [Accesso a database e tabelle in AWS Glue](fine-grained-access-to-glue-resources.md)
+ [Accesso tra account ai cataloghi di dati AWS Glue](security-iam-cross-account-glue-catalog-access.md)
+ [Accesso ai metadati crittografati nel catalogo dati](access-encrypted-data-glue-data-catalog.md)
+ [Accesso a gruppi di lavoro e tag](workgroups-access.md)
+ [Utilizzare policy IAM per controllare l’accesso.](workgroups-iam-policy.md)
+ [Gruppi di lavoro abilitati per Centro identità IAM](workgroups-identity-center.md)
+ [Configurazione della crittografia minima](workgroups-minimum-encryption.md)
+ [Consenti l’accesso alle istruzioni preparate](security-iam-athena-prepared-statements.md)
+ [Usa le chiavi CalledVia contestuali](security-iam-athena-calledvia.md)
+ [Consenti l’accesso a un connettore dati Athena per il metastore Hive esterno](hive-metastore-iam-access.md)
+ [Consentire l'accesso alla funzione Lambda a metastore Hive esterni](hive-metastore-iam-access-lambda.md)
+ [Autorizzazioni necessarie per creare il connettore e il catalogo Athena](athena-catalog-access.md)
+ [Consenti l'accesso alla query federata Athena](federated-query-iam-access.md)
+ [Consenti l'accesso a UDFs](udf-iam-access.md)
+ [Autorizzazione per l’accesso per ML con Athena](machine-learning-iam-access.md)
+ [Per abilitare l’accesso federato all’API Athena:](access-federation-saml.md)

# AWS politiche gestite per Amazon Athena
<a name="security-iam-awsmanpol"></a>

Una politica AWS gestita è una politica autonoma creata e amministrata da. AWS AWS le politiche gestite sono progettate per fornire autorizzazioni per molti casi d'uso comuni, in modo da poter iniziare ad assegnare autorizzazioni a utenti, gruppi e ruoli.

Tieni presente che le policy AWS gestite potrebbero non concedere le autorizzazioni con il privilegio minimo per i tuoi casi d'uso specifici, poiché sono disponibili per tutti i clienti. AWS Si consiglia pertanto di ridurre ulteriormente le autorizzazioni definendo [policy gestite dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) specifiche per i propri casi d'uso.

Non è possibile modificare le autorizzazioni definite nelle politiche gestite. AWS Se AWS aggiorna le autorizzazioni definite in una politica AWS gestita, l'aggiornamento ha effetto su tutte le identità principali (utenti, gruppi e ruoli) a cui è associata la politica. AWS è più probabile che aggiorni una policy AWS gestita quando ne Servizio AWS viene lanciata una nuova o quando diventano disponibili nuove operazioni API per i servizi esistenti.

Per ulteriori informazioni, consultare [Policy gestite da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) nella *Guida per l'utente di IAM*.

## Considerazioni sull'utilizzo di policy gestite con Athena
<a name="managed-policies-considerations"></a>

Le policy gestite sono facili da utilizzare e vengono aggiornate automaticamente con le operazioni richieste con l'evolvere del servizio. Quando utilizzi le policy gestite con Athena, tieni presente quanto segue:
+ Per consentire o negare operazioni di servizio Amazon Athena per te stesso o altri utenti che utilizzano AWS Identity and Access Management (IAM), devi allegare le policy basate su identità ai principali come utenti o gruppi. 
+ Ogni policy basata su identità è formata da istruzioni che definiscono le operazioni consentite o negate. Per ulteriori informazioni e step-by-step istruzioni su come allegare una policy a un utente, consulta [Allegare policy gestite](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console) nella *IAM User Guide*. Per un elenco delle operazioni, consulta la [documentazione di riferimento dell'API di Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/).
+  Le policy basate sulle identità *gestite dal cliente* e *inline* permettono di specificare operazioni Athena più dettagliate all'interno di una policy per ottimizzare l'accesso. Consigliamo di utilizzare la policy `AmazonAthenaFullAccess` come punto di partenza e successivamente concedere o negare operazioni specifiche elencate nella [documentazione di riferimento dell'API di Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). Per ulteriori informazioni sulle policy inline, consulta [Policy gestite e policy inline](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) nella *Guida per l'utente di IAM*.
+ Se disponi anche di principali che si collegano utilizzando JDBC, devi fornire le credenziali del driver JDBC all'applicazione. Per ulteriori informazioni, consulta [Accesso tramite connessioni JDBC e ODBC](policy-actions.md).
+ Se hai crittografato il AWS Glue Data Catalog, devi specificare azioni aggiuntive nelle policy IAM basate sull'identità per Athena. Per ulteriori informazioni, consulta [Configurare l'accesso da Athena ai metadati crittografati in AWS Glue Data Catalog](access-encrypted-data-glue-data-catalog.md).
+ Se crei e usi i gruppi di lavoro, verifica che le tue policy includano l'accesso rilevante alle operazioni dei gruppi di lavoro. Per informazioni dettagliate, consulta [Utilizzare policy IAM per controllare l’accesso.](workgroups-iam-policy.md) e [Esempi di policy per i gruppi di lavoro](example-policies-workgroup.md). 

## AWS politica gestita: AmazonAthenaFullAccess
<a name="amazonathenafullaccess-managed-policy"></a>

La policy gestita `AmazonAthenaFullAccess` concede accesso completo ad Athena.

Per fornire l'accesso, aggiungi autorizzazioni ai tuoi utenti, gruppi o ruoli:
+ Utenti e gruppi in AWS IAM Identity Center:

  Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) (Creazione di un set di autorizzazioni) nella *Guida per l’utente di AWS IAM Identity Center *.
+ Utenti gestiti in IAM tramite un provider di identità:

  Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate nella pagina [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) della *Guida per l’utente IAM*.
+ Utenti IAM:
  + Crea un ruolo che l’utente possa assumere. Segui le istruzioni riportate nella pagina [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) della *Guida per l’utente IAM*.
  + (Non consigliato) Collega una policy direttamente a un utente o aggiungi un utente a un gruppo di utenti. Segui le istruzioni riportate nella pagina [Aggiunta di autorizzazioni a un utente (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) nella *Guida per l'utente di IAM*.

### Raggruppamenti di autorizzazioni
<a name="amazonathenafullaccess-managed-policy-groupings"></a>

La policy `AmazonAthenaFullAccess` è raggruppata nei seguenti set di autorizzazioni.
+ **`athena`**: consente ai principali di accedere alle risorse Athena.
+ **`glue`**— Consente ai principali l'accesso a AWS Glue cataloghi, database, tabelle e partizioni. Ciò è necessario affinché il preside possa utilizzare la AWS Glue Data Catalog s con Athena.
+ **`s3`**: consente al principale di scrivere e leggere i risultati delle query da Amazon S3, di leggere esempi di dati Athena disponibili pubblicamente che risiedono in Amazon S3 e di elencare i bucket. Questo è necessario in modo che il principale possa utilizzare Athena per lavorare con Amazon S3.
+ **`sns`**: consente ai principali di elencare gli argomenti di Amazon SNS e ottenere gli attributi degli argomenti. Ciò consente ai responsabili di utilizzare gli argomenti Amazon SNS con Athena a scopo di monitoraggio e avviso.
+ **`cloudwatch`**— Consente ai responsabili di creare, leggere ed eliminare CloudWatch allarmi. Per ulteriori informazioni, consulta [Utilizza CloudWatch e monitora EventBridge le interrogazioni e controlla i costi](workgroups-control-limits.md).
+ **`lakeformation`**: consente ai principali di richiedere credenziali temporanee per accedere ai dati in una posizione data lake registrata con Lake Formation. Per ulteriori informazioni, consulta [Controlli dell'accesso ai dati sottostanti](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html)nella *Guida per sviluppatori AWS di Lake Formation*.
+ **`datazone`**— Consente ai mandanti di elencare DataZone progetti, domini e ambienti Amazon. Per informazioni sull'utilizzo DataZone in Athena, vedere. [Usa Amazon DataZone in Athena](datazone-using.md)
+ **`pricing`**— Fornisce l'accesso a. Gestione dei costi e fatturazione AWS Per ulteriori informazioni, consulta [GetProducts](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetProducts.html) nella *documentazione di riferimento dell’API Gestione dei costi e fatturazione AWS *.

Per visualizzare le autorizzazioni relative a questa policy, consulta [AmazonAthenaFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html)il AWS Managed Policy Reference.

**Nota**  
È necessario consentire esplicitamente l’accesso ai bucket Amazon S3 di proprietà del servizio per archiviare query di esempio e set di dati di esempio. Per ulteriori informazioni, consulta [Perimetri di dati](data-perimeters.md).

## AWS politica gestita: AWSQuicksight AthenaAccess
<a name="awsquicksightathenaaccess-managed-policy"></a>

`AWSQuicksightAthenaAccess`concede l'accesso alle azioni richieste da Quick per l'integrazione con Athena. È possibile allegare la policy `AWSQuicksightAthenaAccess` alle identità IAM. Allega questa politica solo ai responsabili che utilizzano Quick with Athena. Questa policy include alcune operazioni per Athena che sono obsolete e non incluse nell'API pubblica corrente oppure che vengono utilizzate solo con i driver JDBC e ODBC.

### Raggruppamenti di autorizzazioni
<a name="awsquicksightathenaaccess-managed-policy-groupings"></a>

La policy `AWSQuicksightAthenaAccess` è raggruppata nei seguenti set di autorizzazioni.
+ **`athena`**: consente al principale di eseguire query sulle risorse Athena.
+ **`glue`**— Consente ai principali l'accesso a AWS Glue cataloghi, database, tabelle e partizioni. Ciò è necessario affinché il preside possa utilizzare la AWS Glue Data Catalog s con Athena.
+ **`s3`**: consente al principale di scrivere e leggere i risultati delle query da Amazon S3.
+ **`lakeformation`**: consente ai principali di richiedere credenziali temporanee per accedere ai dati in una posizione data lake registrata con Lake Formation. Per ulteriori informazioni, consulta [Controlli dell'accesso ai dati sottostanti](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html)nella *Guida per sviluppatori AWS di Lake Formation*.

Per visualizzare le autorizzazioni per questa politica, vedere [AWSQuicksightAthenaAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSQuicksightAthenaAccess.html)nel AWS Managed Policy Reference.

## Athena aggiorna le policy gestite AWS
<a name="managed-policies-updates"></a>

Visualizza i dettagli sugli aggiornamenti delle politiche AWS gestite per Athena da quando questo servizio ha iniziato a tenere traccia di queste modifiche.


| Modifica | Descrizione | Data | 
| --- | --- | --- | 
| [AWSQuicksightAthenaAccess](#awsquicksightathenaaccess-managed-policy): aggiornamento a policy esistenti | Sono state aggiunte glue:GetCatalogs le autorizzazioni glue:GetCatalog e per consentire agli utenti di Athena di accedere ai cataloghi di SageMaker AI Lakehouse. | 02 gennaio 2025 | 
| [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy): aggiornamento a policy esistente | Sono state aggiunte glue:GetCatalogs le autorizzazioni glue:GetCatalog e per consentire agli utenti di Athena di accedere ai cataloghi di SageMaker AI Lakehouse. | 02 gennaio 2025 | 
| [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy): aggiornamento a policy esistente |  Consente ad Athena di utilizzare l' AWS Glue `GetCatalogImportStatus`API documentata pubblicamente per recuperare lo stato di importazione del catalogo.  | 18 giugno 2024 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy): aggiornamento a policy esistente  |  Sono state aggiunte `datazone:ListAccountEnvironments` le autorizzazioni `datazone:ListDomains``datazone:ListProjects`, e per consentire agli utenti di Athena di lavorare con domini, progetti e ambienti DataZone Amazon. Per ulteriori informazioni, consulta [Usa Amazon DataZone in Athena](datazone-using.md).  | 3 gennaio 2024 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy): aggiornamento a policy esistente  |  Le `glue:GetColumnStatisticsTaskRuns` autorizzazioni `glue:StartColumnStatisticsTaskRun``glue:GetColumnStatisticsTaskRun`, e sono state aggiunte per dare ad Athena il diritto di AWS Glue chiamare per recuperare le statistiche per la funzionalità di ottimizzazione basata sui costi. Per ulteriori informazioni, consulta [Utilizzo dell’ottimizzatore basato sui costi](cost-based-optimizer.md).  | 3 gennaio 2024 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy): aggiornamento a policy esistente  |  Athena ha aggiunto `pricing:GetProducts` per fornire l'accesso a Gestione dei costi e fatturazione AWS. Per ulteriori informazioni, consulta [GetProducts](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetProducts.html) nella *documentazione di riferimento dell’API Gestione dei costi e fatturazione AWS *.  | 25 gennaio 2023 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy): aggiornamento a policy esistente  |  Athena aggiunta `cloudwatch:GetMetricData` per recuperare i valori delle metriche CloudWatch. Per ulteriori informazioni, [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)consulta *Amazon CloudWatch API Reference*.  | 14 novembre 2022 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) e [AWSQuicksightAthenaAccess](#awsquicksightathenaaccess-managed-policy): aggiornamenti alle policy esistenti  |  Athena ha aggiunto `s3:PutBucketPublicAccessBlock` per consentire il blocco dell'accesso pubblico sui bucket creati da Athena.  | 7 luglio 2021 | 
|  Athena ha iniziato a monitorare le modifiche  |  Athena ha iniziato a tenere traccia delle modifiche per le sue politiche AWS gestite.  | 7 luglio 2021 | 

# Perimetri di dati
<a name="data-perimeters"></a>

Un [perimetro di dati](https://aws.amazon.com/identity/data-perimeters-on-aws/) è un insieme di barriere di autorizzazioni nell' AWS ambiente utilizzato per garantire che solo le identità attendibili accedano a risorse attendibili dalle reti previste. 

Amazon Athena utilizza bucket Amazon S3 di proprietà del servizio per archiviare query di esempio e set di dati di esempio. Se utilizzi perimetri di dati per controllare l'accesso nel tuo ambiente, devi consentire esplicitamente l'accesso a queste risorse di proprietà del servizio per utilizzare le funzionalità di Athena corrispondenti. 

 La tabella seguente elenca l'ARN del bucket Amazon S3 a cui Athena deve accedere, le autorizzazioni richieste, l'identità utilizzata da Athena e le funzionalità che si basano sul bucket S3. Per consentire l'accesso, sostituisci l'ARN `<region>` nel bucket con il tuo Regione AWS valore effettivo e consenti questo bucket in base ai controlli di accesso di Amazon S3. 


**Perimetri di dati utilizzati da Athena**  

| ARN risorsa | Autorizzazioni richieste | Identità utilizzata per l'accesso | Scenari di accesso | 
| --- | --- | --- | --- | 
|  arn:aws:s3:::athena-examples-<region>  | s3: GetObjects3: ListBucket | Il preside IAM che accede ad Athena. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/athena/latest/ug/data-perimeters.html)  | 

# Accesso tramite connessioni JDBC e ODBC
<a name="policy-actions"></a>

Per accedere a risorse Servizi AWS e risorse, come Athena e i bucket Amazon S3, fornisci le credenziali del driver JDBC o ODBC all'applicazione. Se stai utilizzando il driver JDBC oppure ODBC, accertati che la policy delle autorizzazioni IAM includa tutte le operazioni elencate in [AWS politica gestita: AWSQuicksight AthenaAccess](security-iam-awsmanpol.md#awsquicksightathenaaccess-managed-policy).

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

## Metodi di autenticazione
<a name="security-jdbc-odbc-access-authentication"></a>

I driver Athena JDBC e ODBC supportano l'autenticazione basata su SAML 2.0, inclusi i seguenti provider di identità:
+ Active Directory Federation Services (AD FS)
+ Azure Active Directory (AD)
+ Okta 
+ PingFederate

Per ulteriori informazioni, consulta le guide all'installazione e alla configurazione dei rispettivi driver, scaricabili in formato PDF dalle pagine dei driver [JDBC](connect-with-jdbc.md) e [ODBC](connect-with-odbc.md). Per ulteriori informazioni correlate, consulta la seguente documentazione:
+ [Per abilitare l’accesso federato all’API Athena:](access-federation-saml.md)
+ [Utilizzare Lake Formation e i driver JDBC o ODBC per l’accesso federato ad Athena](security-athena-lake-formation-jdbc.md)
+  [Configurare Single Sign-On tramite ODBC, SAML 2.0 e il provider di identità Okta](okta-saml-sso.md)

Per informazioni sulle versioni più recenti dei driver JDBC e ODBC e la relativa documentazione, vedere [Connettersi ad Amazon Athena con JDBC](connect-with-jdbc.md) e [Connettersi ad Amazon Athena con ODBC](connect-with-odbc.md).

# Controllo dell’accesso ad Amazon S3 da Athena
<a name="s3-permissions"></a>

Puoi concedere l'accesso alle posizioni Amazon S3 utilizzando le policy basate sulle identità, le policy delle risorse bucket, le policy dei punti di accesso o qualsiasi combinazione delle policy qui sopra. Quando gli attori interagiscono con Athena, le loro autorizzazioni passano attraverso Athena per determinare ciò a cui Athena può accedere. Ciò significa che gli utenti devono essere autorizzati ad accedere ai bucket Amazon S3 per potervi eseguire query con Athena.

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

Tieni presente che le richieste ad Amazon S3 provengono da un IPv4 indirizzo privato per Athena, non dall'IP di origine specificato in. `aws:SourceIp` Per questo motivo, non è possibile utilizzare la condizione `aws:SourceIp` per negare l’accesso alle azioni di Amazon S3 in una determinata policy IAM. Non è possibile limitare o consentire l’accesso alle risorse Amazon S3 in base alle chiavi di condizioni `aws:SourceVpc` o `aws:SourceVpce`.

**Nota**  
I gruppi di lavoro Athena che utilizzano l'autenticazione Centro identità IAM richiedono che S3 Access Grants sia configurato per l'utilizzo delle identità con propagazione delle identità attendibili. Per maggiori informazioni, consulta la pagina [S3 Access Grants and directory identities](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-directory-ids.html) nella *Guida per l'utente di Amazon Simple Storage Service*.

**Topics**
+ [Policy basate sull’identità](#s3-permissions-identity-based-policies)
+ [Policy delle risorse di bucket S3](#s3-permissions-bucket-resource-policies)
+ [Policy del punto di accesso](#s3-permissions-aliases)
+ [CalledVia chiavi contestuali](#s3-permissions-calledvia)
+ [Altre risorse](#s3-permissions-additional-resources)

## Utilizzare policy basate sull’identità per controllare l’accesso ai bucket Amazon S3
<a name="s3-permissions-identity-based-policies"></a>

Le policy basate su identità sono collegate a un utente, un gruppo o un ruolo IAM. Queste policy consentono di specificare cosa può fare quell'identità (le sue autorizzazioni). È possibile utilizzare policy basate sull’identità per controllare l’accesso ai bucket Amazon S3.

La policy basata sulle identità riportata di seguito consente a `Read` e `Write` l’accesso agli oggetti in un bucket Amazon S3 specifico. Per utilizzare questa politica, sostituiscila *italicized placeholder text* con i tuoi valori.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Sid": "AllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------

## Utilizzare policy delle risorse dei bucket per controllare l’accesso ai bucket Amazon S3
<a name="s3-permissions-bucket-resource-policies"></a>

Con le policy di bucket Amazon S3, puoi proteggere l’accesso agli oggetti nei tuoi bucket, in modo che solo gli utenti con le autorizzazioni appropriate possano accedervi. Per informazioni, consulta [Aggiunta di una policy del bucket utilizzando la console Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) nella *Guida per l’utente di Amazon S3*.

La seguente policy di autorizzazione limita l’utente a leggere solo gli oggetti che hanno il tag chiave e il valore `environment: production`. Questa policy utilizza la chiave di condizione `s3:ExistingObjectTag` per specificare la chiave e il valore del tag.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/JohnDoe"
            },
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:ExistingObjectTag/environment": "production"
                }
            }
        }
    ]
}
```

------

Per esempi di policy del bucket di Amazon S3, consulta [Esempi di policy di bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) nella *Guida per gli sviluppatori di Amazon Simple Storage Service*.

## Puoi utilizzare i punti di accesso Amazon S3 per un controllo più preciso sull’accesso ai bucket
<a name="s3-permissions-aliases"></a>

Se disponi di un set di dati condiviso in un bucket Amazon S3, mantenere una singola policy del bucket che gestisce l'accesso per centinaia di casi d'uso può essere difficile.

I punti di accesso al bucket Amazon S3 aiutano a risolvere questo problema. Un bucket può avere più punti di accesso, ciascuno con una policy che controlla l'accesso al bucket in modo diverso. 

Per ogni punto di accesso creato, Amazon S3 genera un alias che rappresenta il punto di accesso. Poiché l'alias è nel formato del nome bucket Amazon S3, è possibile utilizzare l'alias nella clausola `LOCATION` delle istruzioni `CREATE TABLE` in Athena. L'accesso di Athena al bucket è quindi controllato dalla policy per il punto di accesso che l'alias rappresenta. 

Per ulteriori informazioni, consulta [Specificare la posizione di una tabella in Amazon S3](tables-location-format.md) e [Utilizzo dei punti di accesso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) nella *Guida per l'utente di Amazon S3*.

## Usa le chiavi CalledVia contestuali per consentire solo le chiamate da Athena a un altro servizio
<a name="s3-permissions-calledvia"></a>

Per una maggiore sicurezza, è possibile utilizzare la chiave di contesto di condizione globale [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia). La chiave di condizione `aws:CalledVia` contiene un elenco di servizi a cui è consentita la chiamata un altro servizio. Ad esempio, è possibile consentire `InvokeFunction` le chiamate AWS Lambda solo se provengono da Athena specificando il nome `athena.amazonaws.com` principale del servizio Athena per la chiave di contesto. `aws:CalledVia` Per ulteriori informazioni, consulta [Usa le chiavi di CalledVia contesto per Athena](security-iam-athena-calledvia.md).

## Altre risorse
<a name="s3-permissions-additional-resources"></a>

Per ulteriori informazioni ed esempi su come concedere l'accesso ad Amazon S3, consulta le seguenti risorse:
+ [Procedure guidate di esempio: gestione degli accessi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access.html) nella *Guida per l'utente di Amazon S3*.
+ [Come posso fornire l'accesso su più account agli oggetti che si trovano nei bucket Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/) nel Knowledge Center. AWS 
+ [Accesso tra account in Athena a bucket Amazon S3](cross-account-permissions.md).

# Accesso tra account in Athena a bucket Amazon S3
<a name="cross-account-permissions"></a>

Uno scenario comune di Amazon Athena è la concessione dell'accesso agli utenti in un account diverso da quello del proprietario del bucket, in modo che possano eseguire le query. In questo caso, occorre utilizzare una policy dei bucket per concedere l'accesso.

**Nota**  
Per informazioni sull'accesso tra account diversi ai cataloghi di AWS Glue dati di Athena, vedere. [Configurare l'accesso tra account ai cataloghi di AWS Glue dati](security-iam-cross-account-glue-catalog-access.md)

La seguente policy dei bucket di esempio, creata e applicata al bucket `s3://amzn-s3-demo-bucket` dal proprietario del bucket, concede l'accesso a tutti gli utenti nell'account `123456789123`, che è un account diverso.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id": "MyPolicyID",
   "Statement": [
      {
          "Sid": "MyStatementSid",
          "Effect": "Allow",
          "Principal": {
             "AWS": "arn:aws:iam::123456789123:root"
          },
          "Action": [
             "s3:GetBucketLocation",
             "s3:GetObject",
             "s3:ListBucket",
             "s3:ListBucketMultipartUploads",
             "s3:ListMultipartUploadParts",
             "s3:AbortMultipartUpload"
          ],
          "Resource": [
             "arn:aws:s3:::amzn-s3-demo-bucket",
             "arn:aws:s3:::amzn-s3-demo-bucket/*"
          ]
       }
    ]
 }
```

------

Per concedere l'accesso a un determinato utente in un account, occorre sostituire la chiave `Principal` con una chiave che specifica l'utente anziché `root`. Ad esempio, per il profilo utente `Dave`, è necessario utilizzare `arn:aws:iam::123456789123:user/Dave`.

## Configura l'accesso tra account diversi a un bucket crittografato con una chiave personalizzata AWS KMS
<a name="cross-account-permissions-kms"></a>

Se disponi di un bucket Amazon S3 crittografato con una chiave personalizzata AWS Key Management Service (AWS KMS), potresti dover concedere l'accesso ad esso agli utenti di un altro account Amazon Web Services.

La concessione dell'accesso a un bucket AWS KMS crittografato nell'Account A a un utente nell'Account B richiede le seguenti autorizzazioni:
+ La policy del bucket nell'Account A deve concedere l'accesso al ruolo assunto dall'Account B.
+ La politica AWS KMS chiave dell'Account A deve concedere l'accesso al ruolo assunto dall'utente nell'Account B.
+ Il ruolo AWS Identity and Access Management (IAM) assunto dall'Account B deve concedere l'accesso sia al bucket che alla chiave nell'Account A.

Nelle procedure seguenti viene descritto come concedere ciascuna di queste autorizzazioni.

**Per concedere l'accesso al bucket nell'Account A all'utente nell'Account B**
+ Nell'Account A, [esaminare la policy del bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) e verificare che sia presente un'istruzione che consenta l'accesso dall'ID dell'Account B.

  Ad esempio, la seguente policy del bucket consente l'accesso `s3:GetObject` all'ID `111122223333` dell'account:

------
#### [ JSON ]

****  

  ```
  {
    "Id": "ExamplePolicy1",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "ExampleStmt1",
        "Action": [
          "s3:GetObject"
        ],
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "Principal": {
          "AWS": [
            "111122223333"
          ]
        }
      }
    ]
  }
  ```

------

**Per concedere l'accesso all'utente nell'account b dalla politica AWS KMS chiave nell'account a**

1. Nella politica AWS KMS chiave per l'Account A, concedi il ruolo assunto dalle autorizzazioni dell'Account B alle seguenti azioni:
   +  `kms:Encrypt` 
   +  `kms:Decrypt` 
   +  `kms:ReEncrypt*` 
   +  `kms:GenerateDataKey*` 
   +  `kms:DescribeKey` 

   Nell'esempio seguente viene concesso l'accesso alla chiave a un solo ruolo IAM.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowUseOfTheKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/role_name"
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:DescribeKey"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Dall'Account A, esamina la politica chiave [utilizzando la visualizzazione delle Console di gestione AWS politiche](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to-console-policy-view).

1. Nella policy della chiave, verificare che l'istruzione seguente elenchi l'Account B come principal.

   ```
   "Sid": "Allow use of the key" 
   ```

1. Se l'istruzione `"Sid": "Allow use of the key"` non è presente, attenersi alla seguente procedura:

   1. Visualizzare la policy della chiave [utilizzando la visualizzazione predefinita della console](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to-console-default-view). 

   1.  Aggiungere l'ID dell'Account B come account esterno con accesso alla chiave.

**Concessione dell'accesso al bucket e alla chiave nell'Account A dal ruolo IAM assunto dall'Account B**

1. Dall'Account B, apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Apri il ruolo IAM associato all'utente nell'Account B.

1. Esamina l'elenco delle policy di autorizzazione applicate al ruolo IAM.

1. Assicurarsi che venga applicata una policy che conceda l'accesso al bucket.

   L'istruzione di esempio seguente concede al ruolo IAM l'accesso alle operazioni `s3:GetObject` e `s3:PutObject` sul bucket `amzn-s3-demo-bucket`:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ExampleStmt2",
         "Action": [
           "s3:GetObject",
           "s3:PutObject"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
     ]
   }
   ```

------

1. Assicurarsi che venga applicata una policy che consenta l'accesso alla chiave.
**Nota**  
Se il ruolo IAM assunto dall'Account B dispone già dell'[accesso come amministratore](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html), non è necessario concedere l'accesso alla chiave dalle policy IAM dell'utente.

   L'istruzione di esempio seguente concede al ruolo IAM l'accesso per utilizzare la chiave `arn:aws:kms:us-west-2:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ExampleStmt3",
         "Action": [
           "kms:Decrypt",
           "kms:DescribeKey",
           "kms:Encrypt",
           "kms:GenerateDataKey",
           "kms:ReEncrypt*"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:kms:us-west-2:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
       }
     ]
   }
   ```

------

## Accesso tra account agli oggetti del bucket
<a name="cross-account-permissions-objects"></a>

Gli oggetti caricati da un account (Account C) diverso dall'account proprietario del bucket (Account A) potrebbero richiedere un livello di oggetto esplicito ACLs che conceda l'accesso in lettura all'account di interrogazione (Account B). Per evitare questo requisito, l'Account C deve assumere un ruolo nell'Account A prima di collocare gli oggetti nel bucket dell'Account A. Per ulteriori informazioni, consulta [Come posso fornire l'accesso tra account agli oggetti che si trovano nei bucket Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/).

# Configurare l'accesso a database e tabelle in AWS Glue Data Catalog
<a name="fine-grained-access-to-glue-resources"></a>

Se utilizzi Amazon Athena, puoi definire politiche a livello di risorsa per gli oggetti Data Catalog di database e tabelle utilizzati in Athena. AWS Glue Data Catalog 

**Nota**  
In questo argomento viene illustrata la sicurezza a livello di database e tabella. Per informazioni sulla sicurezza a livello di colonna, riga e cella, consulta [Data filtering and cell-level security in Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/data-filtering.html) (Filtraggio dei dati e sicurezza a livello di cella in Lake Formation). 

Puoi definire autorizzazioni a livello di risorse nelle policy IAM basate sulle identità.

**Importante**  
Questa sezione illustra le autorizzazioni a livello di risorsa nelle policy IAM basate su identità. Queste sono diverse dalle policy basate sulle risorse. Per ulteriori informazioni sulle differenze, consulta [Policy basate sulle identità e policy basate su risorse](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) nella *Guida per l'utente di IAM*.

Consulta i seguenti argomenti per queste operazioni: 


| Per eseguire questa operazione | Consulta l'argomento seguente | 
| --- | --- | 
| Creare una policy IAM che definisca l’accesso granulare alle risorse | [Creazione di policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) nella Guida per l'utente di IAM. | 
| Scopri le politiche basate sull'identità IAM utilizzate in AWS Glue | [ Policy basate sulle identità (policy IAM)](https://docs.aws.amazon.com/glue/latest/dg/using-identity-based-policies.html) nella Guida per lo sviluppatore di AWS Glue .  | 

 **In questa sezione** 
+  [Limitazioni](#access-to-glue-resources-limitations) 
+  [Configura AWS Glue l'accesso al catalogo e al database per Regione AWS](#full-access-to-default-db-per-region) 
+  [Informazioni sul controllo degli accessi per le partizioni e le versioni delle tabelle in AWS Glue](#access-to-glue-resources-table-partitions-and-versions) 
+  [Esempi di autorizzazioni a livello di database e tabella](#examples-fine-grained-table-database-policies) 

## Limitazioni
<a name="access-to-glue-resources-limitations"></a>

Considerate le seguenti limitazioni quando utilizzate il controllo degli accessi a livello di database e tabella per AWS Glue Data Catalog Athena:
+ I gruppi di lavoro Athena abilitati per Centro identità IAM richiedono che Lake Formation sia configurato per l'utilizzo delle identità di Centro identità IAM. Per ulteriori informazioni, consulta la pagina [Integrating IAM Identity Center](https://docs.aws.amazon.com/lake-formation/latest/dg/identity-center-integration.html) nella *Guida per gli sviluppatori di AWS Lake Formation *. 
+ È possibile limitare l'accesso solo a database e tabelle. Questi controlli si applicano a livello di tabella. Non puoi limitare l'accesso a singole partizioni all'interno di una tabella. Per ulteriori informazioni, consulta [Informazioni sul controllo degli accessi per le partizioni e le versioni delle tabelle in AWS Glue](#access-to-glue-resources-table-partitions-and-versions).
+  AWS Glue Data Catalog Contiene le seguenti risorse:`CATALOG`,`DATABASE`, `TABLE` e. `FUNCTION` 
**Nota**  
In questo elenco, le risorse comuni tra Athena e il AWS Glue Data Catalog sono `TABLE``DATABASE`, e `CATALOG` per ogni account. `Function`è specifico per. AWS Glue Per operazioni di eliminazione in Athena, è necessario includere le autorizzazioni per le operazioni AWS Glue . Per informazioni, consulta [Esempi di autorizzazioni a livello di database e tabella](#examples-fine-grained-table-database-policies).

  La gerarchia è la seguente: `CATALOG` è un predecessore di tutti i `DATABASES` in ogni account e ogni `DATABASE` è un predecessore per tutte le relative `TABLES` e `FUNCTIONS`. Ad esempio, per una tabella denominata `table_test` che appartiene a un database `db` nel catalogo nell'account, i suoi predecessori sono `db` e il catalogo nell'account. Per il database `db`, il predecessore è il catalogo nell'account e i relativi discendenti sono le tabelle e le funzioni. Per ulteriori informazioni sulla struttura gerarchica delle risorse, consulta [List of ARNs in Data Catalog nella AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html#data-catalog-resource-arns) *Developer* Guide. 
+ Per operazioni Athena di non eliminazione su una risorsa, come `CREATE DATABASE`, `CREATE TABLE`, `SHOW DATABASE`, `SHOW TABLE` o `ALTER TABLE`, hai bisogno delle autorizzazioni per chiamare tali operazioni sulla risorsa (tabella o database) e su tutti i predecessori della risorsa nel Catalogo dati. Ad esempio, per una tabella, i suoi predecessori sono i database di appartenenza e il catalogo dell'account. Per un database, il predecessore è il catalogo per questo account. Per informazioni, consulta [Esempi di autorizzazioni a livello di database e tabella](#examples-fine-grained-table-database-policies). 
+ Per un'operazione di eliminazione in Athena, ad esempio `DROP DATABASE` o `DROP TABLE`, è necessaria anche l'autorizzazione a richiamare l'operazione di eliminazione su tutti i predecessori e discendenti della risorsa nel catalogo dati. Ad esempio, per eliminare un database è necessario disporre di autorizzazioni per il database, il catalogo, che è il suo predecessore e tutte le tabelle e le funzioni definite dall'utente, che sono i discendenti. Una tabella non ha discendenti. Per eseguire `DROP TABLE`, è necessario disporre dell'autorizzazione per questa operazione sulla tabella, il database di appartenenza e il catalogo. Per informazioni, consulta [Esempi di autorizzazioni a livello di database e tabella](#examples-fine-grained-table-database-policies).

## Configura AWS Glue l'accesso al catalogo e al database per Regione AWS
<a name="full-access-to-default-db-per-region"></a>

Affinché Athena funzioni con AWS Glue, è necessaria una politica che garantisca l'accesso al tuo database e AWS Glue Data Catalog al tuo account per Regione AWS . Per creare database, è richiesta anche l'autorizzazione `CreateDatabase`. Nel seguente esempio di policy, sostituisci l' Regione AWS Account AWS ID e il nome del database con quelli tuoi.

```
{
   "Sid": "DatabasePermissions",
   "Effect": "Allow",
   "Action": [
      "glue:GetDatabase", 
      "glue:GetDatabases",
      "glue:CreateDatabase"
   ],
   "Resource": [
     "arn:aws:glue:us-east-1:123456789012:catalog",
     "arn:aws:glue:us-east-1:123456789012:database/default"
   ]
}
```

## Informazioni sul controllo degli accessi per le partizioni e le versioni delle tabelle in AWS Glue
<a name="access-to-glue-resources-table-partitions-and-versions"></a>

In AWS Glue, le tabelle possono avere partizioni e versioni. Le versioni e le partizioni delle tabelle non sono considerate risorse indipendenti in. AWS Glue L'accesso alle versioni e alle partizioni delle tabelle è determinato dalla concessione dell'accesso nella tabella e nelle risorse predecessore per la tabella. 

Ai fini del controllo granulare degli accessi vengono applicate le seguenti autorizzazioni di accesso:
+ I controlli si applicano a livello di tabella. È possibile limitare l'accesso solo a database e tabelle. Ad esempio, se consenti l'accesso a una tabella partizionata, tale accesso si applica a tutte le partizioni della tabella. Non puoi limitare l'accesso a singole partizioni all'interno di una tabella. 
**Importante**  
Per eseguire azioni AWS Glue sulle partizioni, sono necessarie le autorizzazioni per le azioni di partizione a livello di catalogo, database e tabella. L'accesso alle partizioni all'interno di una tabella non è sufficiente. Ad esempio, per l’esecuzione di `GetPartitions` su una tabella `myTable` nel database `myDB`, è necessario concedere le autorizzazioni a `glue:GetPartitions` per il catalogo, il database `myDB` e le risorse `myTable`. 
+ I controlli degli accessi granulari non si applicano alle versioni delle tabelle. Come per le partizioni, l'accesso alle versioni precedenti di una tabella viene concesso tramite l'accesso alla versione della tabella contenuta APIs nella AWS Glue tabella e ai predecessori della tabella.

*Per informazioni sulle AWS Glue autorizzazioni sulle azioni, consulta [Autorizzazioni AWS Glue API: riferimento alle azioni e alle risorse](https://docs.aws.amazon.com/glue/latest/dg/api-permissions-reference.html) nella Guida per gli sviluppatori.AWS Glue * 

## Esempi di autorizzazioni a livello di database e tabella
<a name="examples-fine-grained-table-database-policies"></a>

La tabella seguente elenca esempi di policy IAM basate sulle identità che consentono l’accesso granulare ai database e alle tabelle in Athena. Consigliamo di iniziare con questi esempi e, in base alle esigenze, regolarli per consentire o negare operazioni specifiche a particolari database e tabelle.

Questi esempi includono l'accesso a database e cataloghi in modo che Athena AWS Glue e io possiamo lavorare insieme. Per più AWS regioni, includi politiche simili per ciascuno dei tuoi database e cataloghi, una riga per ogni regione. 

In questi esempi, sostituisci il database `example_db` e la tabella `test` con i nomi dei tuoi database e tabelle.


| Istruzione DDL | Esempio di policy di accesso IAM che concede l'accesso alla risorsa | 
| --- | --- | 
| ALTER DATABASE | Consente di modificare le proprietà del database example\$1db.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase", <br />      "glue:UpdateDatabase"<br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db"<br />   ]<br />}</pre> | 
| CREATE DATABASE | Consente di creare il database denominato example\$1db.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase", <br />      "glue:CreateDatabase"<br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db"<br />   ]<br />}<br /></pre> | 
| CREATE TABLE | Consente di creare una tabella denominata test nel database example\$1db.<pre>{<br />   "Sid": "DatabasePermissions",<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase", <br />      "glue:GetDatabases"<br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db"<br />   ]<br />},<br />{<br />   "Sid": "TablePermissions",<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetTables",<br />      "glue:GetTable",<br />      "glue:GetPartitions",<br />      "glue:CreateTable"<br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db",<br />     "arn:aws:glue:us-east-1:123456789012:table/example_db/test"<br />   ]<br />}</pre> | 
| DROP DATABASE | Consente di eliminare il database example\$1db, comprese tutte le tabelle in esso contenute.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase",<br />      "glue:DeleteDatabase",<br />      "glue:GetTables", <br />      "glue:GetTable", <br />      "glue:DeleteTable" <br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db", <br />     "arn:aws:glue:us-east-1:123456789012:table/example_db/*", <br />     "arn:aws:glue:us-east-1:123456789012:userDefinedFunction/example_db/*"<br />   ]<br /> }</pre> | 
| DROP TABLE | Consente di eliminare una tabella partizionata denominata test nel database example\$1db. Se la tabella non ha partizioni, non occorre includere operazioni di partizione.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase",<br />      "glue:GetTable",<br />      "glue:DeleteTable", <br />      "glue:GetPartitions",<br />      "glue:GetPartition",<br />      "glue:DeletePartition" <br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db", <br />     "arn:aws:glue:us-east-1:123456789012:table/example_db/test"<br />   ]<br /> }</pre> | 
| MSCK REPAIR TABLE | Consente di aggiornare i metadati del catalogo dopo aver aggiunto le partizioni compatibili con Hive alla tabella denominata test nel database example\$1db.<pre>{<br />    "Effect": "Allow",<br />    "Action": [<br />        "glue:GetDatabase",<br />        "glue:CreateDatabase",<br />        "glue:GetTable",<br />        "glue:GetPartitions",<br />        "glue:GetPartition",<br />        "glue:BatchCreatePartition"<br />    ],<br />    "Resource": [<br />      "arn:aws:glue:us-east-1:123456789012:catalog",<br />      "arn:aws:glue:us-east-1:123456789012:database/example_db", <br />      "arn:aws:glue:us-east-1:123456789012:table/example_db/test"<br />    ]<br />}</pre> | 
| SHOW DATABASES | Consente di elencare tutti i database nel AWS Glue Data Catalog.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase",<br />      "glue:GetDatabases" <br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/*"<br />   ]<br /> }</pre> | 
| SHOW TABLES | Consente di elencare tutte le tabelle nel database example\$1db.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase",<br />      "glue:GetTables"    <br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db",  <br />     "arn:aws:glue:us-east-1:123456789012:table/example_db/*"<br />   ]<br />}</pre> | 

# Configurare l'accesso tra account ai cataloghi di AWS Glue dati
<a name="security-iam-cross-account-glue-catalog-access"></a>

Puoi utilizzare la funzionalità di AWS Glue catalogo per più account di Athena per registrare un AWS Glue catalogo da un account diverso dal tuo. Dopo aver configurato le autorizzazioni IAM richieste per AWS Glue e registrato il catalogo come risorsa Athena [DataCatalog](https://docs.aws.amazon.com/athena/latest/APIReference/API_DataCatalog.html), puoi utilizzare Athena per eseguire query tra account. Per informazioni sull'utilizzo della console Athena per registrare un catalogo da un altro account, consulta la sezione [Registrare un catalogo dati da un altro account](data-sources-glue-cross-account.md).

*Per ulteriori informazioni sull'accesso su più account in AWS Glue, consulta [Garantire l'accesso su più account nella Guida](https://docs.aws.amazon.com/glue/latest/dg/cross-account-access.html) per gli sviluppatori.AWS Glue *

## Prima di iniziare
<a name="security-iam-cross-account-glue-catalog-access-before-you-start"></a>

Poiché questa funzionalità utilizza le `DataCatalog` risorse APIs e le funzionalità Athena esistenti per consentire l'accesso tra account diversi, ti consigliamo di leggere le seguenti risorse prima di iniziare:
+ [Connessione alle origini dati](work-with-data-stores.md)- Contiene argomenti sull'utilizzo di Athena con sorgenti di AWS Glue cataloghi dati Hive o Lambda.
+ [Policy di esempio del catalogo dati](datacatalogs-example-policies.md): mostra come scrivere policy che controllano l'accesso ai cataloghi dati.
+ [Usalo AWS CLI con Hive metastores](datastores-hive-cli.md)- Mostra come utilizzare i metastore AWS CLI with Hive, ma contiene casi d'uso applicabili ad altre fonti di dati.

## Considerazioni e limitazioni
<a name="security-iam-cross-account-glue-catalog-access-considerations-and-limitations"></a>

Attualmente, l'accesso al AWS Glue catalogo tra più account di Athena presenta le seguenti limitazioni:
+ La funzionalità è disponibile solo Regioni AWS laddove è supportata la versione 2 o successiva del motore Athena. Per ulteriori informazioni sulle versioni del motore Athena, consulta [Controllo delle versioni del motore di Athena](engine-versions.md). Per aggiornare la versione del motore di un gruppo di lavoro, consulta [Modificare le versioni del motore Athena](engine-versions-changing.md).
+ Quando registri un altro account AWS Glue Data Catalog nel tuo account, crei una `DataCatalog` risorsa regionale collegata ai dati dell'altro account solo in quella particolare regione.
+ Attualmente le istruzioni `CREATE VIEW` che includono un catalogo AWS Glue multi-account non sono supportate.
+ I cataloghi crittografati utilizzando chiavi AWS gestite non possono essere interrogati su più account. Per i cataloghi da interrogare su più account, utilizza invece le chiavi gestite dai clienti (`KMS_CMK`). *Per informazioni sulle differenze tra chiavi gestite dal cliente e AWS chiavi gestite, consulta [Customer keys and AWS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt                     ) nella Developer Guide.AWS Key Management Service * 

## Nozioni di base
<a name="security-iam-cross-account-glue-catalog-getting-started"></a>

Nello scenario seguente, l'account «mutuatario» (88886666) desidera eseguire una `SELECT` query che si riferisce al AWS Glue catalogo che appartiene all'account «proprietario» (9999), come nell'esempio seguente:

```
SELECT * FROM ownerCatalog.tpch1000.customer
```

Nella procedura seguente, i passaggi 1a e 1b mostrano come concedere all'account del mutuatario l'accesso alle AWS Glue risorse dell'account proprietario, sia dal lato del mutuatario che dal lato del proprietario. L'esempio concede l'accesso al database `tpch1000` e alla tabella `customer`. Modifica questi nomi di esempio in base alle proprie esigenze.

### Fase 1a: Creare un ruolo di mutuatario con una politica di accesso alle risorse del proprietario AWS Glue
<a name="security-iam-cross-account-glue-catalog-access-step-1a"></a>

[Per creare un ruolo di account mutuatario con una politica di accesso alle AWS Glue risorse dell'account proprietario, puoi utilizzare la console AWS Identity and Access Management (IAM) o l'API IAM.](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html) La seguente procedura usa la console IAM.

**Per creare un ruolo e una politica del mutuatario per accedere alle risorse dell'account proprietario AWS Glue**

1. Accedi alla console IAM [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)dall'account del mutuatario.

1. Nel riquadro di navigazione, espandi **Gestione accesso**, quindi seleziona **Policy**.

1. Scegli **Crea policy**.

1. Per **Editor di policy**, scegli **JSON**.

1. Nella casella inserire la policy seguente, quindi modificarla in base alle proprie esigenze:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "glue:*",
               "Resource": [
                   "arn:aws:glue:us-east-1:999999999999:catalog",
                   "arn:aws:glue:us-east-1:999999999999:database/tpch1000",
                   "arn:aws:glue:us-east-1:999999999999:table/tpch1000/customer"
               ]
           }
       ]
   }
   ```

------

1. Scegli **Next (Successivo)**.

1. Nella pagina **Rivedi e crea**, per **Nome policy** inserisci un nome per la policy (per esempio, **CrossGluePolicyForBorrowerRole**).

1. Scegli **Crea policy**.

1. Nel pannello di navigazione, seleziona **Roles** (Ruoli).

1. Selezionare **Create role (Crea ruolo)**.

1. Sulla pagina **Select trusted entity**, scegliere **Account AWS**, e quindi **Next**.

1. Nella pagina **Aggiungi autorizzazioni**, inserisci il nome della policy creata nella casella di ricerca (ad esempio, **CrossGluePolicyForBorrowerRole**).

1. Selezionare la casella di controllo accanto alla nuova policy, quindi scegliere **Next: Tags (Successivo: Tag)**.

1. Nella pagina **Name, review, and create** (Nome, revisione e creazione), per **Role name** (Nome ruolo) inserisci un nome per il ruolo (ad esempio **CrossGlueBorrowerRole**).

1. Scegli **Crea ruolo**.

### Fase 1b: Creare una politica relativa al proprietario per concedere AWS Glue l'accesso al mutuatario
<a name="security-iam-cross-account-glue-catalog-access-step-1b"></a>

Per concedere AWS Glue l'accesso dall'account del proprietario (ISSIM9999) al ruolo del mutuatario, puoi utilizzare la console o il funzionamento dell' AWS Glue API. AWS Glue [PutResourcePolicy](https://docs.aws.amazon.com/glue/latest/webapi/API_PutResourcePolicy.html) La procedura seguente utilizza la console. AWS Glue 

**Per concedere AWS Glue l'accesso al conto del mutuatario da parte del proprietario**

1. Accedi alla AWS Glue console [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)dall'account del proprietario.

1. Nel riquadro di navigazione, espandi **Data Catalog**, quindi seleziona **Impostazioni catalogo**.

1. Nel campo **Autorizzazioni** inserisci una policy simile alla seguente. Per*rolename*, inserisci il ruolo che il mutuatario ha creato nella Fase 1a (ad esempio,). **CrossGlueBorrowerRole** Se desideri aumentare l'ambito delle autorizzazioni, puoi utilizzare il carattere jolly `*` sia per il database che per i tipi di risorse della tabella.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::666666666666:user/username",
                       "arn:aws:iam::666666666666:role/rolename"
                   ]
               },
               "Action": "glue:*",
               "Resource": [
                   "arn:aws:glue:us-east-1:999999999999:catalog",
                   "arn:aws:glue:us-east-1:999999999999:database/tpch1000",
                   "arn:aws:glue:us-east-1:999999999999:table/tpch1000/customer"
               ]
           }
       ]
   }
   ```

------

Dopo aver terminato, utilizza l’[API AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html) per effettuare alcune chiamate di test tra gli account per confermare che le autorizzazioni sono configurate come previsto.

### Fase 2: Il mutuatario registra l'account che appartiene al AWS Glue Data Catalog proprietario
<a name="security-iam-cross-account-glue-catalog-access-step-2"></a>

La procedura seguente illustra come utilizzare la console Athena per configurare AWS Glue Data Catalog nell'account Amazon Web Services del proprietario come origine dei dati. Per informazioni sull'utilizzo delle operazioni API anziché sulla console per registrare il catalogo, consulta la sezione [Utilizzo dell’API per registrare un catalogo dati Athena appartenente all’account del proprietario](#security-iam-cross-account-glue-catalog-access-step-2-api).

**Per registrare un' AWS Glue Data Catalog appartenenza a un altro account**

1. Apri la console Athena all'indirizzo [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Se il pannello di navigazione della console non è visibile, scegli il menu di espansione a sinistra.  
![\[Scegli il menu di espansione.\]](http://docs.aws.amazon.com/it_it/athena/latest/ug/images/nav-pane-expansion.png)

1. Espandi **Amministrazione**, quindi seleziona **Origini dati**.

1. Nell'angolo in alto a destra, scegli **Create data source** (Crea origine dei dati).

1. Nella pagina **Scegli un'origine dati**, per **Origini dati**, seleziona **S3 - AWS Glue Data Catalog**, quindi scegli **Avanti**.

1. Nella pagina **Inserisci dettagli origine dati**, nella sezione **AWS Glue Data Catalog**, per **Scegli un AWS Glue Data Catalog**, seleziona **AWS Glue Data Catalog in un altro account**.

1. Per **Dataset details** (Dettagli del set di dati), fornisci le seguenti informazioni:
   + **Nome origine dati**: inserisci il nome che desideri utilizzare nelle query SQL per fare riferimento al catalogo dati nell'altro account.
   + **Descrizione** — (Facoltativo) Inserisci una descrizione del catalogo dati nell'altro account.
   + **ID catalogo** — Inserisci l'ID account Amazon Web Services a 12 cifre dell'account a cui appartiene il catalogo dati. L'ID dell'account Amazon Web Services è l'ID del catalogo.

1. (Facoltativo) Espandi **Tag**, quindi inserisci le coppie chiave-valore che intendi associare all'origine dati. Per ulteriori informazioni sui tag, consulta [Assegnare tag alle risorse di Athena](tags.md).

1. Scegli **Next (Successivo)**.

1. Nella pagina **Review and create** (Rivedi e crea), esamina le informazioni inserite, quindi scegli **Create data source** (Crea origine dei dati). La pagina **Data source details** (Dettagli sull'origine dei dati) elenca i database e i tag per il catalogo dati registrato.

1. Scegliere **Data sources and catalogs** Il catalogo dati che hai registrato è elencato nella colonna **Data source name** (Nome origine dei dati).

1. Per visualizzare o modificare le informazioni sul catalogo dati, scegli il catalogo, quindi scegli **Actions** (Operazioni), **Edit** (Modifica).

1. Per eliminare il nuovo catalogo dati, scegli il catalogo, quindi scegli **Actions** (Operazioni), **Delete** (Elimina).

### Passaggio 3: il mutuatario invia una query
<a name="security-iam-cross-account-glue-catalog-access-step-4"></a>

Il mutuatario invia una query che fa riferimento al catalogo utilizzando il. *catalog* *database*. *table*sintassi, come nell'esempio seguente:

```
SELECT * FROM ownerCatalog.tpch1000.customer
```

Invece di utilizzare la sintassi completa, il mutuatario può anche specificare il catalogo contestualmente passandolo tramite. [QueryExecutionContext](https://docs.aws.amazon.com/athena/latest/APIReference/API_QueryExecutionContext.html)

## (Facoltativo) Configurazione di autorizzazioni Amazon S3 aggiuntive
<a name="security-iam-cross-account-glue-catalog-access-additional-s3-permissions"></a>
+ Se l’account mutuatario utilizza una query Athena per scrivere nuovi dati in una tabella nell’account proprietario, il proprietario non avrà automaticamente accesso a questi dati in Amazon S3, anche se la tabella esiste nell’account del proprietario. Questo perché il mutuatario è il proprietario dell’oggetto delle informazioni in Amazon S3, se non diversamente configurato. Per concedere al proprietario l’accesso ai dati, imposta le autorizzazioni per gli oggetti come passaggio aggiuntivo.
+ Alcune operazioni DDL tra account come[MSCK REPAIR TABLE](msck-repair-table.md) richiedono autorizzazioni Amazon S3. Ad esempio, se l’account mutuatario sta eseguendo un’operazione `MSCK REPAIR` tra account su una tabella nell’account del proprietario che contiene i dati in un bucket S3 dell’account del proprietario, tale bucket deve concedere al ruolo assunto dal mutuatario le autorizzazioni affinché la query abbia esito positivo.

Per ulteriori informazioni sulla concessione di autorizzazioni per il bucket, consulta [Come impostare le autorizzazioni ACL per un bucket](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/set-bucket-permissions.html) nella *Guida per l'utente di Amazon Simple Storage Service*.

## (Facoltativo) Usa un catalogo in modo dinamico
<a name="security-iam-cross-account-glue-catalog-access-dynamic-catalogs"></a>

In alcuni casi potresti voler eseguire rapidamente test su un catalogo AWS Glue tra account senza la registrazione necessaria a tal fine. È possibile eseguire dinamicamente query tra account senza creare l'oggetto della risorsa `DataCatalog` se le autorizzazioni IAM e Amazon S3 richieste sono configurate correttamente come descritto in precedenza in questo documento.

Per fare riferimento esplicitamente a un catalogo senza registrazione, utilizza la sintassi nell'esempio seguente:

```
SELECT * FROM "glue:arn:aws:glue:us-east-1:999999999999:catalog".tpch1000.customer
```

Usa il formato"`glue:<arn>`", dove `<arn>` è l'[ARN di AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html#data-catalog-resource-arns) che si desidera utilizzare. Nell'esempio, Athena utilizza questa sintassi per puntare dinamicamente al catalogo AWS Glue dati dell'account 9999 come se avessi creato separatamente un oggetto per esso. `DataCatalog`

### Note per l'utilizzo di cataloghi dinamici
<a name="security-iam-cross-account-glue-catalog-access-notes-dynamic-catalogs"></a>

Quando utilizzi i cataloghi dinamici, ricorda i seguenti punti.
+ L'utilizzo di un catalogo dinamico richiede le autorizzazioni IAM normalmente utilizzate per le operazioni dell'API Athena Catalogo dati. La differenza principale è che il nome della risorsa Catalogo dati segue la convenzione di denominazione `glue:*`.
+ Il catalogo ARN deve appartenere alla stessa Regione in cui viene eseguita la query.
+ Quando si utilizza un catalogo dinamico in una query o visualizzazione DML, racchiuderlo con virgolette doppie basse (`\"`). Quando si utilizza un catalogo dinamico in una query DDL, circondalo con caratteri di backtick (```).

## Utilizzo dell’API per registrare un catalogo dati Athena appartenente all’account del proprietario
<a name="security-iam-cross-account-glue-catalog-access-step-2-api"></a>

Invece di utilizzare la console Athena come descritto nel passaggio 2, puoi utilizzare le operazioni API per registrare il catalogo dati che appartiene all'account del proprietario.

Il creatore della [DataCatalog](https://docs.aws.amazon.com/athena/latest/APIReference/API_DataCatalog.html)risorsa Athena deve disporre delle autorizzazioni necessarie per eseguire l'operazione API Athena. [CreateDataCatalog](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateDataCatalog.html) A seconda delle esigenze, potrebbe essere necessario accedere a operazioni API aggiuntive. Per ulteriori informazioni, consulta [Policy di esempio del catalogo dati](datacatalogs-example-policies.md).

Il seguente ente di `CreateDataCatalog` richiesta registra un AWS Glue catalogo per l'accesso su più account:

```
# Example CreateDataCatalog request to register a cross-account Glue catalog:
{
    "Description": "Cross-account Glue catalog",
    "Name": "ownerCatalog",
    "Parameters": {"catalog-id" : "999999999999"  # Owner's account ID
    },
    "Type": "GLUE"
}
```

Il codice di esempio seguente utilizza un client Java per creare l'oggetto `DataCatalog`.

```
# Sample code to create the DataCatalog through Java client
CreateDataCatalogRequest request = new CreateDataCatalogRequest()
    .withName("ownerCatalog")
    .withType(DataCatalogType.GLUE)
    .withParameters(ImmutableMap.of("catalog-id", "999999999999"));

athenaClient.createDataCatalog(request);
```

Dopo questi passaggi, il mutuatario dovrebbe vedere `ownerCatalog` quando chiama l'operazione API. [ListDataCatalogs](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListDataCatalogs.html)

## Risorse aggiuntive
<a name="security-iam-cross-account-glue-catalog-access-additional-resources"></a>
+ [Registrare un catalogo dati da un altro account](data-sources-glue-cross-account.md)
+ [Configura l'accesso tra account a un account condiviso AWS Glue Data Catalog con Amazon Athena](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena.html) nella guida *Prescriptive AWS Guidance* Patterns.
+ [Esegui query su AWS Glue Data Catalog più account utilizzando Amazon Athena](https://aws.amazon.com/blogs/big-data/query-cross-account-aws-glue-data-catalogs-using-amazon-athena/) nel blog sui Big *AWS Data*
+ [Concessione dell'accesso multi-account](https://docs.aws.amazon.com/glue/latest/dg/cross-account-access.html) *nella Guida per gli sviluppatori di AWS Glue * 

# Configurare l'accesso da Athena ai metadati crittografati in AWS Glue Data Catalog
<a name="access-encrypted-data-glue-data-catalog"></a>

Se utilizzi Amazon Athena, puoi abilitare la crittografia AWS Glue Data Catalog utilizzando la AWS Glue console o l'API. AWS Glue Data Catalog Per informazioni, consulta [Crittografia del Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html) nella *Guida per lo sviluppatore di AWS Glue *.

Se AWS Glue Data Catalog è crittografato, è necessario aggiungere le seguenti azioni a tutte le politiche utilizzate per accedere ad Athena:

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

# Accesso a gruppi di lavoro e tag
<a name="workgroups-access"></a>

Un gruppo di lavoro è una risorsa gestita da Athena. Pertanto, se la policy del gruppo di lavoro utilizza operazioni che accettano `workgroup` come input, è necessario specificare l'ARN del gruppo di lavoro nel modo seguente dove `workgroup-name` è il nome del gruppo di lavoro:

```
"Resource": [arn:aws:athena:region:AWSAcctID:workgroup/workgroup-name]
```

Ad esempio, per un gruppo di lavoro denominato `test_workgroup` nella Regione `us-west-2` per l'account Amazon Web Services `123456789012`, specifica il gruppo di lavoro come una risorsa utilizzando il seguente ARN:

```
"Resource":["arn:aws:athena:us-east-2:123456789012:workgroup/test_workgroup"]
```

Per accedere ai gruppi di lavoro abilitati alla propagazione dell'identità affidabile (TIP), gli utenti di IAM Identity Center devono essere assegnati all'`IdentityCenterApplicationArn`elemento restituito dalla risposta dell'azione API [GetWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html)Athena.
+ Per un elenco delle policy dei gruppi di lavoro, consulta [Esempi di policy per i gruppi di lavoro](example-policies-workgroup.md).
+ Per un elenco delle policy basate su tag per i gruppi di lavoro, consulta [Utilizzare policy di controllo degli accessi IAM basate su tag](tags-access-control.md).
+ Per ulteriori informazioni sulla creazione di policy IAM per i gruppi di lavoro, consulta [Utilizzare policy IAM per controllare l’accesso.](workgroups-iam-policy.md).
+ Per un elenco completo delle operazioni Amazon Athena, consulta i nomi delle operazioni API nella [documentazione di riferimento dell'API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). 
+ Per ulteriori informazioni sulle policy IAM, consulta [Creazione di policy con l'editor visivo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) nella *Guida per l'utente di IAM*. 

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

# Utilizzare policy IAM per controllare l’accesso.
<a name="workgroups-iam-policy"></a>

Per controllare l'accesso ai gruppi di lavoro, usa le autorizzazioni IAM a livello di risorsa o le policy IAM basate sull'identità. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

**Nota**  
Per accedere a gruppi di lavoro affidabili abilitati alla propagazione delle identità, gli utenti di IAM Identity Center devono essere assegnati all'`IdentityCenterApplicationArn`elemento restituito dalla risposta dell'azione API [GetWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html)Athena.

La seguente procedura è specifica di Athena. 

Per informazioni specifiche su IAM, segui i collegamenti elencati alla fine di questa sezione. Per informazioni sulle policy di esempio dei gruppi di lavoro JSON, consulta la sezione [Esempi di policy per i gruppi di lavoro](example-policies-workgroup.md).

**Per utilizzare l'editor visivo nella console IAM per creare una policy di gruppo di lavoro**

1. Accedi a Console di gestione AWS e apri la console IAM all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Nel pannello di navigazione sulla sinistra, selezionare **Policies** (Policy) e fare clic su **Create Policy** (Crea policy).

1. Nella scheda **Visual editor (Editor visivo)**, selezionare **Choose a Service (Scegli un servizio)**. Quindi selezionare Athena per aggiungerlo alla policy.

1. Scegliere **Select actions (Seleziona operazioni)**, quindi scegliere le operazioni da aggiungere alla policy. L'editor visivo mostra le operazioni disponibili in Athena. Per ulteriori informazioni, consulta [Operazioni, risorse e chiavi di condizione per Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) nella *Documentazione di riferimento per l'autorizzazione ai servizi*.

1. Scegliere **add actions (aggiungi operazioni)** per immettere un'operazione oppure usare i caratteri jolly (\$1) per specificare più operazioni. 

   Come impostazione predefinita, la policy che si sta creando utilizza le operazioni selezionate. Se si selezionano una o più operazioni che supportano le autorizzazioni a livello di risorsa per la risorsa `workgroup` in Athena, l'editor elenca la risorsa `workgroup` 

1. Selezionare **Resources (Risorse)** per specificare i gruppi di lavoro per la policy. Per esempi di policy dei gruppi di lavoro JSON, consulta la sezione [Esempi di policy per i gruppi di lavoro](example-policies-workgroup.md).

1. Specificare la risorsa `workgroup` come segue:

   ```
   arn:aws:athena:<region>:<user-account>:workgroup/<workgroup-name>
   ```

1. Scegliere **Review policy (Rivedi policy)** e digitare i valori per **Name (Nome)** e **Description (Descrizione)** (facoltativa) per la policy che si sta creando. Esaminare il riepilogo della policy per accertarsi di disporre delle autorizzazioni desiderate. 

1. Seleziona **Crea policy** per salvare la nuova policy.

1. Allega questa policy basata su un'identità a un utente, un gruppo o un ruolo.

Per ulteriori informazioni, consulta gli argomenti seguenti nella *Referenza sull'autorizzazione del servizio* e nella *Guida per l'utente di IAM*:
+  [Operazioni, risorse e chiavi di condizione per Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) 
+  [Creazione di policy con l'editor visivo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) 
+  [Aggiunta e rimozione delle policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) 
+  [Controllo dell'accesso alle risorse](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html#access_controlling-resources) 

Per esempi di policy dei gruppi di lavoro JSON, consulta la sezione [Esempi di policy per i gruppi di lavoro](example-policies-workgroup.md).

Per un elenco completo delle operazioni Amazon Athena, consulta i nomi delle operazioni API nella [documentazione di riferimento dell'API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). 

# Esempi di policy per i gruppi di lavoro
<a name="example-policies-workgroup"></a>

Questa sezione include policy di esempio che puoi utilizzare per abilitare varie operazioni sui gruppi di lavoro. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

Un gruppo di lavoro è una risorsa IAM gestita da Athena. Pertanto, se la policy del gruppo di lavoro utilizza operazioni che accettano `workgroup` come input, è necessario specificare l'ARN del gruppo di lavoro nel modo seguente:

```
"Resource": [arn:aws:athena:<region>:<user-account>:workgroup/<workgroup-name>]
```

Dove `<workgroup-name>` è il nome del gruppo di lavoro. Ad esempio, per un gruppo di lavoro denominato `test_workgroup`, deve essere specificato come risorsa nel modo seguente:

```
"Resource": ["arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup"]
```

Per un elenco completo delle operazioni Amazon Athena, consulta i nomi delle operazioni API nella [documentazione di riferimento dell'API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). Per ulteriori informazioni sulle policy IAM, consulta [Creazione di policy con l'editor visivo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) nella *Guida per l'utente di IAM*. Per ulteriori informazioni sulla creazione di policy IAM per i gruppi di lavoro, consulta [Utilizzare policy IAM per controllare l’accesso.](workgroups-iam-policy.md).
+  [Example policy for full access to all workgroups](#example1-full-access-all-wkgs) 
+  [Example policy for full access to a specified workgroup](#example2-full-access-this-wkg) 
+  [Example policy for running queries in a specified workgroup](#example3-user-access) 
+  [Example policy for running queries in the primary workgroup](#example4-run-in-primary-access) 
+  [Example policy for management operations on a specified workgroup](#example5-manage-wkgs-access) 
+  [Example policy for listing workgroups](#example6-list-all-wkgs-access) 
+  [Example policy for running and stopping queries in a specific workgroup](#example7-run-queries-access) 
+  [Example policy for working with named queries in a specific workgroup](#example8-named-queries-access) 
+  [Example policy for working with Spark notebooks](#example9-spark-workgroup) 

**Example Esempio di policy per l'accesso completo a tutti i gruppi di lavoro**  
La policy seguente consente l'accesso completo a tutte le risorse gruppo di lavoro che potrebbero essere presenti nell'account. È consigliabile utilizzare questa policy per gli utenti nell'account che devono amministrare e gestire gruppi di lavoro per tutti gli altri utenti.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

**Example Esempio di policy per l'accesso completo a un determinato gruppo di lavoro**  
La policy seguente consente l'accesso completo a una specifica risorsa gruppo di lavoro denominata `workgroupA`. È possibile usare questa policy per gli utenti con controllo completo su un determinato gruppo di lavoro.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListEngineVersions",
                "athena:ListWorkGroups",
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:GetDatabase",
                "athena:ListTableMetadata",
                "athena:GetTableMetadata"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "athena:BatchGetQueryExecution",
                "athena:GetQueryExecution",
                "athena:ListQueryExecutions",
                "athena:StartQueryExecution",
                "athena:StopQueryExecution",
                "athena:GetQueryResults",
                "athena:GetQueryResultsStream",
                "athena:CreateNamedQuery",
                "athena:GetNamedQuery",
                "athena:BatchGetNamedQuery",
                "athena:ListNamedQueries",
                "athena:DeleteNamedQuery",
                "athena:CreatePreparedStatement",
                "athena:GetPreparedStatement",
                "athena:ListPreparedStatements",
                "athena:UpdatePreparedStatement",
                "athena:DeletePreparedStatement"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "athena:DeleteWorkGroup",
                "athena:UpdateWorkGroup",
                "athena:GetWorkGroup",
                "athena:CreateWorkGroup"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"
            ]
        }
    ]
}
```

**Example Esempio di policy per l'esecuzione di query in un determinato gruppo di lavoro**  
Nella policy seguente, a un utente è consentito eseguire query nel gruppo `workgroupA` specificato e visualizzarle. All'utente non è consentito eseguire attività di gestione per il gruppo di lavoro, ad esempio l'aggiornamento o l'eliminazione. Tenere presente che la politica di esempio non limita gli utenti solo a questo gruppo di lavoro né nega l’accesso ad altri gruppi di lavoro.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
       {
            "Effect": "Allow",
            "Action": [
                "athena:ListEngineVersions",
                "athena:ListWorkGroups",
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:GetDatabase",
                "athena:ListTableMetadata",
                "athena:GetTableMetadata"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "athena:GetWorkGroup", 
                "athena:BatchGetQueryExecution",
                "athena:GetQueryExecution",
                "athena:ListQueryExecutions",
                "athena:StartQueryExecution",
                "athena:StopQueryExecution",
                "athena:GetQueryResults",
                "athena:GetQueryResultsStream",
                "athena:CreateNamedQuery",
                "athena:GetNamedQuery",
                "athena:BatchGetNamedQuery",
                "athena:ListNamedQueries",
                "athena:DeleteNamedQuery",
                "athena:CreatePreparedStatement",
                "athena:GetPreparedStatement",
                "athena:ListPreparedStatements",
                "athena:UpdatePreparedStatement",
                "athena:DeletePreparedStatement"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"
            ]
        }
    ]
}
```

**Example Esempio di policy per l'esecuzione di query nel gruppo di lavoro principale**  
È possibile modificare l'esempio precedente per consentire a un determinato utente di eseguire query anche nel gruppo di lavoro principale.   
È consigliabile aggiungere la risorsa principale dei gruppi di lavoro a tutti gli utenti, che altrimenti sono configurati per l'esecuzione di query nei rispettivi gruppi di lavoro designati. L'aggiunta di questa risorsa alle policy degli utenti del gruppo di lavoro è utile in caso di eliminazione o disabilitazione dei rispettivi gruppi di lavoro designati. In questo caso, possono continuare a eseguire query nel gruppo di lavoro principale.
Per consentire agli utenti nel tuo account di eseguire query nel gruppo di lavoro principale, aggiungi una riga che contiene l'ARN del gruppo di lavoro principale alla sezione delle risorse di [Example policy for running queries in a specified workgroup](#example3-user-access), come nel seguente esempio.  

```
arn:aws:athena:us-east-1:123456789012:workgroup/primary"
```

**Example Esempio di policy per le operazioni di gestione in un determinato gruppo di lavoro**  
Nel policy seguente, un utente può creare, eliminare, ottenere i dettagli e aggiornare un gruppo di lavoro `test_workgroup`.     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListEngineVersions"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "athena:CreateWorkGroup",
                "athena:GetWorkGroup",
                "athena:DeleteWorkGroup",
                "athena:UpdateWorkGroup"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup"
            ]
        }
    ]
}
```

**Example Esempio di policy per elencare i gruppi di lavoro**  
La policy seguente consente a tutti gli utenti per elencare tutti i gruppi di lavoro:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListWorkGroups"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example Esempio di policy per l'esecuzione e l'interruzione di query in un determinato gruppo di lavoro**  
In questa policy, a un utente è consentito eseguire query nel gruppo di lavoro:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:StartQueryExecution",
                "athena:StopQueryExecution"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup"
            ]
        }
    ]
}
```

**Example Esempio di policy per l'utilizzo delle query denominate in un determinato gruppo di lavoro**  
Nel seguente policy, un utente dispone delle autorizzazioni per creare, eliminare e ottenere informazioni sulle query denominate nel gruppo di lavoro specificato:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:CreateNamedQuery",
                "athena:GetNamedQuery",
                "athena:DeleteNamedQuery"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup"            ]
        }
    ]
}
```

**Example Esempio di policy per l'utilizzo dei notebook Spark in Athena**  
Utilizza una policy come la seguente per lavorare con i notebook Spark in Athena.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCreatingWorkGroupWithDefaults",
            "Action": [
                "athena:CreateWorkGroup",
                "s3:CreateBucket",
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:AttachRolePolicy",
                "s3:GetBucketLocation",
                "athena:ImportNotebook"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/Demo*",
                "arn:aws:s3:::123456789012-us-east-1-athena-results-bucket-*",
                "arn:aws:iam::123456789012:role/service-role/AWSAthenaSparkExecutionRole-*",
                "arn:aws:iam::123456789012:policy/service-role/AWSAthenaSparkRolePolicy-*"
            ]
        },
        {
            "Sid": "AllowRunningCalculations",
            "Action": [
                "athena:ListWorkGroups",
                "athena:GetWorkGroup",
                "athena:StartSession",
                "athena:CreateNotebook",
                "athena:ListNotebookMetadata",
                "athena:ListNotebookSessions",
                "athena:GetSessionStatus",
                "athena:GetSession",
                "athena:GetNotebookMetadata",
                "athena:CreatePresignedNotebookUrl"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:athena:us-east-1:123456789012:workgroup/Demo*"
        },
        {
            "Sid": "AllowListWorkGroupAndEngineVersions",
            "Action": [
                "athena:ListWorkGroups",
                "athena:ListEngineVersions"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

# Gruppi di lavoro Athena abilitati per Centro identità IAM
<a name="workgroups-identity-center"></a>

[La propagazione affidabile delle identità](https://docs.aws.amazon.com//singlesignon/latest/userguide/trustedidentitypropagation-overview.html) è una AWS IAM Identity Center funzionalità che gli amministratori di connected Servizi AWS possono utilizzare per concedere e controllare l'accesso ai dati del servizio. L’accesso a questi dati si basa su attributi utente come le associazioni di gruppo. La configurazione di una propagazione affidabile delle identità richiede la collaborazione tra gli amministratori di connected Servizi AWS e gli amministratori di IAM Identity Center. Per ulteriori informazioni, consulta [Prerequisites and considerations](https://docs.aws.amazon.com//singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html).

Con [Centro identità IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html), è possibile gestire la sicurezza degli accessi per le identità della forza lavoro, note anche come utenti della forza lavoro. IAM Identity Center offre un unico posto in cui è possibile creare o connettere gli utenti della forza lavoro e gestire centralmente il loro accesso su tutti gli account e le applicazioni. AWS Per assegnare a questi utenti l'accesso agli Account AWS, puoi utilizzare le autorizzazioni multi-account. Per assegnare agli utenti l'accesso alle applicazioni abilitate a Centro identità IAM, alle applicazioni cloud e alle applicazioni Security Assertion Markup Language (SAML 2.0) dei clienti, puoi utilizzare le assegnazioni delle applicazioni. Per ulteriori informazioni, consulta la pagina [Trusted identity propagation across applications](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation.html) nella *Guida per l'utente di AWS IAM Identity Center *.

Il supporto SQL di Athena per la propagazione affidabile delle identità è disponibile sia in EMR Studio che in Unified Studio. SageMaker Ogni piattaforma fornisce interfacce specifiche per l’utilizzo di TIP con Athena. 

Quando si utilizza Athena SQL in EMR Studio con identità IAM Identity Center, sono disponibili due opzioni per i gruppi di lavoro:
+ **Normale WorkGroups**: non sono necessarie assegnazioni di utenti/gruppi.
+ **Gruppi di lavoro abilitati a IAM Identity Center**: richiede l'assegnazione users/groups tramite la console o l'API IAM Identity Center.

Per entrambe le opzioni, puoi eseguire query utilizzando l’interfaccia SQL Athena in EMR Studio con IAM Identity Center abilitato. 

## Considerazioni e limitazioni
<a name="workgroups-identity-center-considerations-and-limitations"></a>

Quando utilizzi la propagazione delle identità attendibili con Amazon Athena, considera i seguenti punti:
+ Non è possibile modificare il metodo di autenticazione per il gruppo di lavoro dopo la creazione dello stesso.
  + I gruppi di lavoro SQL Athena esistenti non possono essere modificati per supportare i gruppi di lavoro abilitati per Centro identità IAM. I gruppi di lavoro SQL Athena esistenti possono propagare l’identità ai servizi downstream.
  + I gruppi di lavoro abilitati per Centro identità IAM non possono essere modificati per supportare le autorizzazioni IAM a livello di risorsa o le policy IAM basate sull'identità.
+ Per accedere ai gruppi di lavoro Trusted Identity Propagation abilitati, gli utenti di IAM Identity Center devono essere assegnati a `IdentityCenterApplicationArn` ciò che viene restituito dalla risposta dell'azione API [GetWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html)Athena.
+ Amazon S3 Access Grants deve essere configurato per l’utilizzo delle identità con propagazione delle identità attendibili. Per maggiori informazioni, consulta la pagina [S3 Access Grants and corporate directory identities](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-directory-ids.html) nella *Guida per l'utente di Amazon S3*.
+ I gruppi di lavoro Athena abilitati per Centro identità IAM richiedono che Lake Formation sia configurato per l'utilizzo delle identità di Centro identità IAM. Per informazioni sulla configurazione, consulta la pagina [Integrating IAM Identity Center](https://docs.aws.amazon.com/lake-formation/latest/dg/identity-center-integration.html) nella *Guida per gli sviluppatori di AWS Lake Formation *.
+ Per impostazione predefinita, nei gruppi di lavoro abilitati per IAM Identity Center le query scadono dopo 30 minuti. È possibile richiedere un aumento del timeout delle query, ma nei gruppi di lavoro con propagazione delle identità attendibili le query possono essere eseguite al massimo entro un'ora. 
+ Le modifiche alle autorizzazioni di utenti o gruppi nei gruppi di lavoro con propagazione delle identità attendibili possono richiedere fino a un'ora per avere effetto.
+ Le query in un gruppo di lavoro Athena che utilizza la propagazione delle identità attendibili non possono essere eseguite direttamente dalla console Athena. Devono essere eseguite dall'interfaccia Athena in uno studio EMR con Centro identità IAM abilitato. Per ulteriori informazioni sull'utilizzo di Athena in EMR Studio, consulta la pagina [Use the Amazon Athena SQL editor in EMR Studio](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-athena.html) nella *Guida per la gestione di Amazon EMR*.
+ La propagazione delle identità attendibili non è compatibile con le seguenti funzionalità di Athena.
  + Chiavi di contesto `aws:CalledVia` per gruppi di lavoro abilitati per Centro identità IAM.
  + Athena per i gruppi di lavoro Spark.
  + Accesso federato all'API di Athena.
  + Accesso federato ad Athena utilizzando Lake Formation e i driver Athena JDBC e ODBC.
+ Puoi utilizzare la propagazione delle identità affidabili con Athena solo nei seguenti casi: Regioni AWS
  + `us-east-2`: Stati Uniti orientali (Ohio)
  + `us-east-1`: Stati Uniti orientali (Virginia settentrionale)
  + `us-west-1`: Stati Uniti occidentali (California settentrionale)
  + `us-west-2`: Stati Uniti occidentali (Oregon)
  + `af-south-1`: Africa (Città del Capo)
  + `ap-east-1`: Asia Pacifico (Hong Kong)
  + `ap-southeast-3`: Asia Pacifico (Giacarta)
  + `ap-south-1`: Asia Pacifico (Mumbai)
  + `ap-northeast-3`: Asia Pacifico (Osaka-Locale)
  + `ap-northeast-2`: Asia Pacifico (Seoul)
  + `ap-southeast-1`: Asia Pacifico (Singapore)
  + `ap-southeast-2`: Asia Pacifico (Sydney)
  + `ap-northeast-1`: Asia Pacifico (Tokyo)
  + `ca-central-1`: Canada (Centrale)
  + `eu-central-1`: Europa (Francoforte)
  + `eu-central-2` Europa (Zurigo)
  + `eu-west-1`: Europa (Irlanda)
  + `eu-west-2`: Europa (Londra)
  + `eu-south-1`: Europa (Milano)
  + `eu-west-3`: Europa (Parigi)
  + `eu-north-1`: Europa (Stoccolma)
  + `me-south-1`: Medio Oriente (Bahrein)
  + `sa-east-1`: Sud America (San Paolo)

## Autorizzazioni richieste
<a name="workgroups-identity-center-required-permissions"></a>

L'utente IAM dell'amministratore che crea il gruppo di lavoro abilitato per Centro identità IAM nella console Athena deve avere le seguenti policy collegate.
+ La policy gestita `AmazonAthenaFullAccess`. Per informazioni dettagliate, vedi [AWS politica gestita: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy).
+ La seguente policy inline che consente le operazioni di IAM e Centro identità IAM:

------
#### [ JSON ]

****  

  ```
  { "Version":"2012-10-17",		 	 	  "Statement": [ { "Action": [ "iam:createRole",
      "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles", "identitystore:ListUsers",
      "identitystore:ListGroups", "identitystore:CreateUser", "identitystore:CreateGroup",
      "sso:ListInstances", "sso:CreateInstance", "sso:DeleteInstance", "sso:ListTrustedTokenIssuers",
      "sso:DescribeTrustedTokenIssuer", "sso:ListApplicationAssignments",
      "sso:DescribeRegisteredRegions", "sso:GetManagedApplicationInstance",
      "sso:GetSharedSsoConfiguration", "sso:PutApplicationAssignmentConfiguration",
      "sso:CreateApplication", "sso:DeleteApplication", "sso:PutApplicationGrant",
      "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationAccessScope",
      "sso:ListDirectoryAssociations", "sso:CreateApplicationAssignment",
      "sso:DeleteApplicationAssignment", "organizations:ListDelegatedAdministrators",
      "organizations:DescribeAccount", "organizations:DescribeOrganization",
      "organizations:CreateOrganization", "sso-directory:SearchUsers", "sso-directory:SearchGroups",
      "sso-directory:CreateUser" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [
      "iam:PassRole" ], "Effect": "Allow", "Resource": [
          "arn:aws:iam::111122223333:role/service-role/AWSAthenaSQLRole-*"
      ] } ] }
  ```

------

## Creazione di un gruppo di lavoro Athena abilitato per Centro identità IAM
<a name="workgroups-identity-center-creating-an-identity-center-enabled-athena-workgroup"></a>

La procedura seguente mostra i passaggi e le opzioni relative alla creazione di un gruppo di lavoro Athena abilitato per Centro identità IAM. Per una descrizione delle altre opzioni di configurazione disponibili per i gruppi di lavoro Athena, consulta la pagina [Creare un gruppo di lavoro](creating-workgroups.md).

**Creazione di un gruppo di lavoro abilitato per il SSO nella console Athena**

1. Apri la console Athena all'indirizzo [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Nel pannello di navigazione della console Athena, scegli **Workgroups** (Gruppi di lavoro).

1. Nella pagina **Gruppi di lavoro** scegli **Crea gruppo di lavoro**.

1. Nella pagina **Crea gruppo di lavoro**, in **Nome gruppo di lavoro**, inserisci un nome per il gruppo di lavoro.

1. Per **Motore di analisi**, utilizza l'impostazione predefinita **Athena SQL**.

1. Per **Autenticazione**, scegli **Centro identità IAM**.

1. Per **Ruolo di servizio per l'accesso a Centro identità IAM**, scegli un ruolo di servizio esistente o creane uno nuovo.

   Athena richiede le autorizzazioni per accedere a Centro identità IAM per tuo conto. A tale scopo, Athena ha bisogno di un ruolo di servizio. Un ruolo di servizio è un ruolo IAM che gestisci e che autorizza un AWS servizio ad accedere ad altri AWS servizi per tuo conto. Per interrogare i cataloghi federati o eseguire UDF, aggiornare il ruolo di servizio con le autorizzazioni Lambda corrispondenti. Per ulteriori informazioni, consulta [Creazione di un ruolo per delegare le autorizzazioni a un AWS servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) nella Guida per l'utente *IAM*.

1. Espandi **Configurazione dei risultati delle query**, quindi inserisci o scegli un percorso Amazon S3 per **Posizione del risultato delle query**.

1. (Facoltativo) Seleziona **Crittografa i risultati delle query**. Per impostazione predefinita, è supportato SSE-S3. Per utilizzare SSE-KMS e CSE-KMS con la posizione dei risultati delle query, fornisci le concessioni al **Ruolo di servizio for IAM Identity Center** da Amazon S3 Access Grants. Per ulteriori informazioni, vedi la policy del ruolo [ in ](#workgroups-identity-center-access-grant-location-sample-role-policy).

1. (Facoltativo) Seleziona **Crea prefisso S3 basato sull'identità utente**.

   Quando crei un gruppo di lavoro abilitato per Centro identità IAM, l'opzione **Abilita S3 Access Grants** è selezionata per impostazione predefinita. Puoi utilizzare Amazon S3 Access Grants per controllare l'accesso alle posizioni (prefissi) dei risultati delle query Athena in Amazon S3. Per maggiori informazioni su Amazon S3 Access Grants, consulta la pagina [Managing access with Amazon S3 Access Grants](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html).

   Nei gruppi di lavoro Athena che utilizzano l'autenticazione Centro identità IAM, puoi abilitare la creazione di posizioni dei risultati delle query basate sull'identità che sono regolate da Amazon S3 Access Grants. Questi prefissi Amazon S3 basati sull'identità utente consentono agli utenti di un gruppo di lavoro Athena di mantenere i risultati delle query isolati dagli altri utenti del medesimo gruppo di lavoro.

   Quando abiliti l'opzione del prefisso utente, Athena aggiunge l'ID utente come prefisso del percorso Amazon S3 alla posizione di output dei risultati della query per il gruppo di lavoro (ad esempio, `s3://amzn-s3-demo-bucket/${user_id}`). Per utilizzare questa funzionalità, devi configurare Access Grants in modo da concedere soltanto all'utente l'autorizzazione alla posizione che ha il prefisso `user_id`. Per un esempio di policy del ruolo di posizione di Amazon S3 Access Grants che limita l’accesso ai risultati delle query Athena, consultare [eliminare la policy del ruolo](#workgroups-identity-center-access-grant-location-sample-role-policy). 
**Nota**  
La selezione dell'opzione del prefisso S3 dell'identità utente abilita automaticamente l'opzione di sovrascrittura delle impostazioni lato client per il gruppo di lavoro, come descritto nel passaggio successivo. L'opzione di sovrascrittura delle impostazioni lato client è un requisito per la funzionalità del prefisso dell'identità utente.

1. Espandi **Impostazioni**, quindi verifica che sia selezionata l'opzione **Sovrascrivi le impostazioni lato client**.

   Quando si seleziona **Sovrascrivi le impostazioni lato client**, le impostazioni del gruppo di lavoro vengono applicate a livello di gruppo di lavoro per tutti i client nel gruppo stesso. Per ulteriori informazioni, consulta [Override client-side settings (Ignora impostazioni lato client)](workgroups-settings-override.md).

1. (Facoltativo) Effettua tutte le altre impostazioni di configurazione necessarie come descritto in [Creare un gruppo di lavoro](creating-workgroups.md).

1. Selezionare **Create workgroup (Crea gruppo di lavoro)**.

1. Utilizza la sezione **Workgroups** della console Athena per assegnare utenti o gruppi dalla propria directory IAM Identity Center al proprio gruppo di lavoro Athena abilitato per IAM Identity Center.

## eliminare la policy del ruolo
<a name="workgroups-identity-center-access-grant-location-sample-role-policy"></a>

L’esempio seguente mostra una policy per un ruolo da associare a una posizione Amazon S3 Access Grants che limita l’accesso ai risultati delle query Athena. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:*"
            ],
            "Condition": {
                "ArnNotEquals": {
                    "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                },
                "StringNotEquals": {
                    "aws:ResourceAccount": "111122223333"
                }
            },
            "Effect": "Deny",
            "Resource": "*",
            "Sid": "ExplicitDenyS3"
        },
        {
            "Action": [
                "kms:*"
            ],
            "Effect": "Deny",
            "NotResource": "arn:aws:kms:us-east-1:111122223333:key/${keyid}",
            "Sid": "ExplictDenyKMS"
        },
        {
            "Action": [
                "s3:ListMultipartUploadParts",
                "s3:GetObject"
            ],
            "Condition": {
                "ArnEquals": {
                    "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                },
                "StringEquals": {
                    "aws:ResourceAccount": "111122223333"
                }
            },
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION/${identitystore:UserId}/*",
            "Sid": "ObjectLevelReadPermissions"
        },
        {
            "Action": [
                "s3:PutObject",
                "s3:AbortMultipartUpload"
            ],
            "Condition": {
                "ArnEquals": {
                    "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                },
                "StringEquals": {
                "aws:ResourceAccount": "111122223333"
                }
            },
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION/${identitystore:UserId}/*",
            "Sid": "ObjectLevelWritePermissions"
        },
        {
            "Action": "s3:ListBucket",
            "Condition": {
                "ArnEquals": {
                    "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                },
                "StringEquals": {
                    "aws:ResourceAccount": "111122223333"
                },
                "StringLikeIfExists": {
                    "s3:prefix": [
                        "${identitystore:UserId}",
                        "${identitystore:UserId}/*"
                    ]
                }
            },
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION",
            "Sid": "BucketLevelReadPermissions"
        },
        {
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/${keyid}",
            "Sid": "KMSPermissions"
        }
    ]
}
```

------

# Abilitazione della crittografia minima per un gruppo di lavoro
<a name="workgroups-minimum-encryption"></a>

In qualità di amministratore di un gruppo di lavoro Athena SQL, puoi applicare un livello minimo di crittografia in Amazon S3 per tutti i risultati delle query del gruppo di lavoro. Puoi usare questa funzionalità per assicurarti che i risultati delle query non vengano mai memorizzati in un bucket Amazon S3 in uno stato non crittografato.

Quando gli utenti di un gruppo di lavoro con crittografia minima abilitata inviano una query, possono impostare la crittografia solo sul livello minimo configurato o su un livello superiore se disponibile. Athena crittografa i risultati delle query al livello specificato quando l'utente esegue la query o al livello impostato nel gruppo di lavoro.

Sono disponibili i seguenti livelli:
+ **Base**: crittografia lato server Amazon S3 con chiavi gestite da Amazon S3 (**SSE\$1S3**).
+ **Intermedia**: crittografia lato server con chiavi gestite da KMS (**SSE\$1KMS**).
+ **Avanzata**: crittografia lato client con chiavi gestite da KMS (**CSE\$1KMS**).

## Considerazioni e limitazioni
<a name="workgroups-minimum-encryption-considerations-and-limitations"></a>
+ La funzionalità di crittografia minima non è disponibile per i gruppi di lavoro abilitati su Apache Spark.
+ La funzionalità di crittografia minima è funzionale solo quando il gruppo di lavoro non abilita l'opzione **[Ignora impostazioni lato client](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)**.
+ Se il gruppo di lavoro ha l'opzione **Ignora impostazioni lato client** abilitata, prevale l'impostazione di crittografia del gruppo di lavoro e l'impostazione di crittografia minima non ha alcun effetto.
+ L'attivazione di questa funzionalità non comporta alcun costo.

## Abilitazione della crittografia minima per un gruppo di lavoro
<a name="workgroups-minimum-encryption-enabling"></a>

È possibile abilitare un livello minimo di crittografia per i risultati delle query dal gruppo di lavoro Athena SQL quando si crea o si aggiorna il gruppo di lavoro. A tale scopo, puoi utilizzare la console Athena, l'API Athena o. AWS CLI

### Utilizzo della console Athena per abilitare la crittografia minima
<a name="workgroups-minimum-encryption-enabling-using-the-athena-console"></a>

Per iniziare a creare o modificare il tuo gruppo di lavoro con la console Athena, consulta [Creazione di un gruppo di lavoro](https://docs.aws.amazon.com/athena/latest/ug/workgroups-create-update-delete.html#creating-workgroups) o [Modifica di un gruppo di lavoro](https://docs.aws.amazon.com/athena/latest/ug/workgroups-create-update-delete.html#editing-workgroups). Durante la configurazione del gruppo di lavoro, utilizza i seguenti passaggi per abilitare la crittografia minima.

**Per configurare il livello minimo di crittografia per i risultati delle query del gruppo di lavoro**

1. Deseleziona l'opzione **Ignora le impostazioni lato client** o verifica che non sia selezionata.

1. Seleziona l'opzione **Crittografa risultati query**.

1. Per **Tipo di crittografia**, seleziona il metodo di crittografia che vuoi che Athena utilizzi per i risultati delle query del gruppo di lavoro (**SSE\$1S3**, **SSE\$1KMS** oppure **CSE\$1KMS**). Questi tipi di crittografia corrispondono ai livelli di sicurezza di base, intermedi e avanzati.

1. Per applicare il metodo di crittografia che hai scelto come livello minimo di crittografia per tutti gli utenti, seleziona **Imposta *encryption\$1method* come** crittografia minima.

   Quando selezioni questa opzione, una tabella mostra la gerarchia di crittografia e i livelli di crittografia consentiti agli utenti quando il tipo di crittografia scelto diventa il minimo.

1. Dopo aver creato il gruppo di lavoro o aggiornato la configurazione del gruppo di lavoro, scegli **Crea gruppo di lavoro** o **Salva modifiche**.

### Usa l'API Athena o abilita AWS CLI la crittografia minima
<a name="workgroups-minimum-encryption-enabling-using-the-athena-api-or-cli"></a>

Quando utilizzi l'[UpdateWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateWorkGroup.html)API [CreateWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateWorkGroup.html)or per creare o aggiornare un gruppo di lavoro Athena SQL, imposta su [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroupConfiguration.html#athena-Type-WorkGroupConfiguration-EnforceWorkGroupConfiguration)`false`, su e usa [EnableMinimumEncryptionConfiguration[EncryptionOption](https://docs.aws.amazon.com/athena/latest/APIReference/API_EncryptionConfiguration.html#athena-Type-EncryptionConfiguration-EncryptionOption)](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroupConfiguration.html#athena-Type-WorkGroupConfiguration-EnableMinimumEncryptionConfiguration)per `true` specificare il tipo di crittografia.

In AWS CLI, utilizza il [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/update-work-group.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/update-work-group.html)comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/create-work-group.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/create-work-group.html)or con i `--configuration-updates` parametri `--configuration` or e specifica le opzioni corrispondenti a quelle per l'API.

# Consenti l’accesso alle istruzioni preparate
<a name="security-iam-athena-prepared-statements"></a>

Questo argomento tratta le autorizzazioni IAM per le istruzioni preparate in Amazon Athena. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

Per ulteriori informazioni sulle istruzioni preparate, consulta [Utilizzare query parametrizzate](querying-with-prepared-statements.md).

Le seguenti autorizzazioni IAM sono necessarie per creare, gestire ed eseguire istruzioni preparate.

```
athena:CreatePreparedStatement
athena:UpdatePreparedStatement
athena:GetPreparedStatement
athena:ListPreparedStatements
athena:DeletePreparedStatement
```

Utilizza queste autorizzazioni come illustrato nella tabella seguente.


****  

| Per farlo | Vanno concesse le seguenti autorizzazioni: | 
| --- | --- | 
| Esecuzione di una query PREPARE | athena:StartQueryExecution athena:CreatePreparedStatement | 
| Riesegui una query PREPARE per aggiornare un'istruzione preparata esistente | athena:StartQueryExecution athena:UpdatePreparedStatement | 
| Esegui una query EXECUTE | athena:StartQueryExecution athena:GetPreparedStatement | 
| Esecuzione di una query DEALLOCATE PREPARE | athena:StartQueryExecution athena:DeletePreparedStatement | 

## Esempio
<a name="security-iam-athena-prepared-statements-example"></a>

Il criterio IAM di esempio seguente concede le autorizzazioni per gestire ed eseguire istruzioni preparate su un ID account e un gruppo di lavoro specifici.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:StartQueryExecution",
                "athena:CreatePreparedStatement",
                "athena:UpdatePreparedStatement",
                "athena:GetPreparedStatement",
                "athena:DeletePreparedStatement",
                "athena:ListPreparedStatements"
            ],
            "Resource": [
                "arn:aws:athena:*:111122223333:workgroup/<workgroup-name>"
            ]
        }
    ]
}
```

------

# Usa le chiavi di CalledVia contesto per Athena
<a name="security-iam-athena-calledvia"></a>

Quando un [principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) effettua una [richiesta](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-request) a AWS, AWS raccoglie le informazioni sulla richiesta in un *contesto di richiesta* che valuta e autorizza la richiesta. È possibile utilizzare l'elemento `Condition` di una policy JSON per confrontare le chiavi della richiesta con i valori chiave specificati nella policy. Le *chiavi di condizione globali* sono chiavi di condizione con un prefisso `aws:`.

## Informazioni sulla chiave di contesto aws:CalledVia
<a name="security-iam-athena-calledvia-the-awscalledvia-context-key"></a>

Puoi usare la chiave di contesto di condizione globale [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia) per confrontare i servizi nella policy con i servizi che hanno effettuato richieste per conto del principale IAM (utente o ruolo). Quando un principale effettua una richiesta a un Servizio AWS, tale servizio potrebbe utilizzare le credenziali del principale per effettuare richieste successive ad altri servizi. La chiave `aws:CalledVia` contiene un elenco ordinato di ciascun servizio nella catena che ha effettuato le richieste per conto dell'entità principale.

Specificando il nome principale del servizio per la chiave di `aws:CalledVia` contesto, è possibile rendere la chiave Servizio AWS di contesto specifica. Ad esempio, puoi utilizzare la chiave di condizione `aws:CalledVia` per limitare le richieste solo a quelle fatte da Athena. Per utilizzare la chiave di condizione `aws:CalledVia` in una policy con Athena, specifica il nome del principale del servizio Athena `athena.amazonaws.com`, come nell'esempio seguente.

```
 ...
    "Condition": {
        "ForAnyValue:StringEquals": { 
            "aws:CalledVia": "athena.amazonaws.com"
        }
    }
...
```

Puoi utilizzare la chiave di contesto `aws:CalledVia` per garantire che i chiamanti abbiano accesso a una risorsa (come una funzione Lambda) solo se chiamano la risorsa da Athena.

**Nota**  
La chiave di contesto `aws:CalledVia` non è compatibile con la funzionalità di propagazione delle identità attendibili.

## Aggiungi una chiave CalledVia contestuale per l'accesso alle funzioni Lambda
<a name="security-iam-athena-calledvia-example-policy-to-add-an-optional-calledvia-context-key-for-fine-grained-access-to-a-lambda-function"></a>

Athena richiede che il chiamante abbia le autorizzazioni `lambda:InvokeFunction` per chiamare la funzione Lambda associata alla query. L’istruzione seguente specifica che l’utente può invocare le funzioni Lambda solo da Athena.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:OneAthenaLambdaFunction",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": "athena.amazonaws.com"
                }
            }
        }
    ]
}
```

------

L'esempio seguente mostra l'aggiunta dell'istruzione precedente a una policy che consente a un utente di eseguire e leggere una query federata. I principali autorizzati a eseguire queste operazioni possono eseguire query che specificano i cataloghi Athena associati a un'origine dati federata. Tuttavia, il principale non può accedere alla funzione Lambda associata a meno che la funzione non venga richiamata tramite Athena.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0", 
            "Effect": "Allow",
            "Action": [ 
                "athena:GetWorkGroup", 
                "s3:PutObject", 
                "s3:GetObject", 
                "athena:StartQueryExecution", 
                "s3:AbortMultipartUpload",  
                "athena:StopQueryExecution", 
                "athena:GetQueryExecution", 
                "athena:GetQueryResults", 
                "s3:ListMultipartUploadParts" 
            ], 
            "Resource": [ 
                "arn:aws:athena:*:111122223333:workgroup/WorkGroupName",
                "arn:aws:s3:::MyQueryResultsBucket/*", 
                "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*"
            ] 
        }, 
        {
            "Sid": "VisualEditor1", 
            "Effect": "Allow", 
            "Action": "athena:ListWorkGroups", 
            "Resource": "*" 
        }, 
        {
            "Sid": "VisualEditor2", 
            "Effect": "Allow", 
            "Action": 
                [ 
                "s3:ListBucket", 
                "s3:GetBucketLocation" 
                ], 
            "Resource": "arn:aws:s3:::MyLambdaSpillBucket" 
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:OneAthenaLambdaFunction", 
                "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction"
            ], 
            "Condition": {
                "ForAnyValue:StringEquals": { 
                    "aws:CalledVia": "athena.amazonaws.com"
                }
            }
        }            
    ]
}
```

------

Per ulteriori informazioni sulle chiavi di contesto `CalledVia`, consulta [Chiavi di contesto delle condizioni globali di AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) nella *Guida per l'utente di IAM*.

# Consenti l’accesso a un connettore dati Athena per il metastore Hive esterno
<a name="hive-metastore-iam-access"></a>

Negli esempi di policy di autorizzazione in questo argomento vengono illustrate le operazioni consentite obbligatorie e le risorse per le quali sono consentite. Esamina attentamente queste policy e modificale in base si tuoi requisiti prima di collegare policy di autorizzazione simili a identità IAM.
+  [Example Policy to Allow an IAM Principal to Query Data Using Athena Data Connector for External Hive Metastore](#hive-using-iam) 
+  [Example Policy to Allow an IAM Principal to Create an Athena Data Connector for External Hive Metastore](#hive-creating-iam) 

**Example : consenti a un principale IAM di eseguire query sui dati utilizzando Athena Data Connector per il metastore Hive esterno**  
La seguente policy è collegata ai principali IAM oltre alla [AWS politica gestita: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy), che concede l'accesso completo a operazioni Athena.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetLayerVersion",
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunction",
                "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction",
                "arn:aws:lambda:*:111122223333:layer:MyAthenaLambdaLayer:*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
            "Resource": "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation"
        }
    ]
}
```


**Spiegazione delle autorizzazioni**  

| Operazioni consentite | Spiegazione | 
| --- | --- | 
|  <pre>"s3:GetBucketLocation",<br />"s3:GetObject",<br />"s3:ListBucket",<br />"s3:PutObject",<br />"s3:ListMultipartUploadParts",<br />"s3:AbortMultipartUpload"</pre>  |  `s3`le azioni consentono la lettura e la scrittura sulla risorsa specificata come`"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation"`, where *MyLambdaSpillLocation* identifica il bucket di fuoriuscita specificato nella configurazione della funzione o delle funzioni Lambda richiamate. L'identificatore di *arn:aws:lambda:\$1:*MyAWSAcctId*:layer:*MyAthenaLambdaLayer*:\$1* risorsa è richiesto solo se si utilizza un livello Lambda per creare dipendenze di runtime personalizzate per ridurre le dimensioni degli artefatti funzionali al momento della distribuzione. Il `*` nell'ultima posizione è un carattere jolly per la versione del livello.  | 
|  <pre>"lambda:GetFunction",<br />"lambda:GetLayerVersion",<br />"lambda:InvokeFunction"</pre>  | Consente alle query di richiamare le funzioni specificate nel blocco. AWS Lambda Resource Ad esempioarn:aws:lambda:\$1:MyAWSAcctId:function:MyAthenaLambdaFunction, where MyAthenaLambdaFunction specifica il nome di una funzione Lambda da richiamare. Più funzioni possono essere specificate come mostrato nell'esempio. | 

**Example : consenti a un principale IAM di creare un Athena Data Connector per il metastore Hive esterno**  
La seguente policy è collegata ai principali IAM oltre alla [AWS politica gestita: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy), che concede l'accesso completo a operazioni Athena.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:ListFunctions",
                "lambda:GetLayerVersion",
                "lambda:InvokeFunction",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:PublishLayerVersion",
                "lambda:DeleteLayerVersion",
                "lambda:UpdateFunctionConfiguration",
                "lambda:PutFunctionConcurrency",
                "lambda:DeleteFunctionConcurrency"
            ],
            "Resource": "arn:aws:lambda:*:111122223333: function: MyAthenaLambdaFunctionsPrefix*"
        }
    ]
}
```
 **Spiegazione delle autorizzazioni**   
Consente alle query di richiamare le AWS Lambda funzioni per le funzioni specificate nel blocco AWS Lambda . `Resource` Ad esempio`arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction`, where *MyAthenaLambdaFunction* specifica il nome di una funzione Lambda da richiamare. Più funzioni possono essere specificate come mostrato nell'esempio.

# Consentire l'accesso alla funzione Lambda a metastore Hive esterni
<a name="hive-metastore-iam-access-lambda"></a>

Per richiamare una funzione Lambda nell'account, è necessario creare un ruolo con le seguenti autorizzazioni:
+ `AWSLambdaVPCAccessExecutionRole`: un'autorizzazione per il [ruolo di esecuzione di AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) per gestire le interfacce di rete elastiche che collegano la funzione a un VPC. Assicurarsi di disporre di un numero sufficiente di interfacce di rete e indirizzi IP disponibili.
+ `AmazonAthenaFullAccess`— La policy [AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy)gestita garantisce l'accesso completo ad Athena.
+ Una policy Amazon S3 per consentire alla funzione Lambda di scrivere su S3 e consentire ad Athena di leggere da S3.

Ad esempio, la seguente policy definisce l'autorizzazione per la posizione di spill `s3:\\mybucket\spill`.

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/spill" ] } ] }
```

------

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

## crea funzione Lambda
<a name="hive-metastore-iam-access-lambda-creating-lambda-functions"></a>

Per creare una funzione Lambda nell'account, sono necessari i permessi di sviluppo delle funzioni o il ruolo `AWSLambdaFullAccess`. Per ulteriori informazioni, consulta [Policy IAM basate su identità per AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-identity-based.html).

[Poiché Athena utilizza le AWS Serverless Application Repository per creare le funzioni Lambda, il superutente o l'amministratore che crea le funzioni Lambda deve disporre anche di politiche IAM per consentire le query federate Athena.](federated-query-iam-access.md)

## Configurazione delle autorizzazioni per la registrazione del catalogo e le operazioni API sui metadati
<a name="hive-metastore-iam-access-lambda-catalog-registration-and-metadata-api-operations"></a>

[Per l'accesso tramite API alla registrazione del catalogo e alle operazioni sui metadati, puoi utilizzare la policy gestita. AmazonAthenaFullAccess ](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy) Se non si utilizza la policy `AmazonAthenaFullAccess`, aggiungere le seguenti operazioni API alle policy Athena:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs",
                "athena:GetDataCatalog",
                "athena:CreateDataCatalog",
                "athena:UpdateDataCatalog",
                "athena:DeleteDataCatalog",
                "athena:GetDatabase",
                "athena:ListDatabases",
                "athena:GetTableMetadata",
                "athena:ListTableMetadata"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## Chiama una funzione Lambda tra le regioni
<a name="hive-metastore-iam-access-lambda-cross-region-invocation"></a>

Per impostazione predefinita, Athena invoca le funzioni Lambda definite nella stessa Regione. Per richiamare una funzione Lambda in Regione AWS una regione diversa da quella in cui vengono eseguite le query Athena, usa l'ARN completo della funzione Lambda. 

L’esempio seguente mostra come un catalogo nella Regione Europa (Francoforte) può specificare una funzione Lambda nella Regione Stati Uniti orientali (Virginia settentrionale) per recuperare i dati dal metastore Hive nella Regione Europa (Francoforte).

```
arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new     
```

Quando si specifica l'ARN completo in questo modo, Athena può invocare la funzione Lambda `external-hms-service-new` su `us-east-1` per recuperare i dati del metastore Hive da `eu-central-1`.

**Nota**  
Il catalogo deve essere registrato nello stesso Regione AWS che utilizzi per eseguire le query Athena.

## Chiama una funzione Lambda tra più account
<a name="hive-metastore-iam-access-lambda-cross-account-invocation"></a>

A volte potrebbe essere necessario richiedere l'accesso a un metastore Hive da un altro account. Ad esempio, per eseguire un metastore Hive, è possibile avviare un cluster EMR da un account diverso da quello utilizzato per le query Athena. Gruppi o team diversi potrebbero eseguire metastore Hive con account diversi all'interno del loro VPC. Oppure si potrebbe voler accedere ai metadati provenienti da vari metastore Hive di gruppi o team diversi.

Athena utilizza il [supporto AWS Lambda per l'accesso tra account](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/) per abilitare l'accesso tra account per i metastore Hive.

**Nota**  
Si noti che l'accesso tra account per Athena implica normalmente l'accesso tra account sia per i metadati che per i dati in Amazon S3.

Si consideri il seguente scenario:
+ L’account `111122223333` imposta la funzione Lambda `external-hms-service-new` su us-east-1 in Athena per accedere a un metastore Hive in esecuzione su un cluster EMR.
+ L'account `111122223333` vuole consentire all'account 444455556666 di accedere ai dati del metastore Hive.

Per concedere `444455556666` all'account l'accesso alla funzione Lambda`external-hms-service-new`, account `111122223333` utilizza il comando seguente AWS CLI `add-permission`. Il comando è stato formattato per la leggibilità.

```
$ aws --profile perf-test lambda add-permission
      --function-name external-hms-service-new
      --region us-east-1
      --statement-id Id-ehms-invocation2
      --action "lambda:InvokeFunction"
      --principal arn:aws:iam::444455556666:user/perf1-test
{
    "Statement": "{\"Sid\":\"Id-ehms-invocation2\",
                   \"Effect\":\"Allow\",
                   \"Principal\":{\"AWS\":\"arn:aws:iam::444455556666:user/perf1-test\"},
                   \"Action\":\"lambda:InvokeFunction\",
                   \"Resource\":\"arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new\"}"
}
```

Per verificare l'autorizzazione Lambda, utilizzare il comando `get-policy`, come nell'esempio seguente. Il comando è stato formattato per la leggibilità.

```
$ aws --profile perf-test lambda get-policy 
      --function-name arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new 
      --region us-east-1
{
    "RevisionId": "711e93ea-9851-44c8-a09f-5f2a2829d40f",
    "Policy": "{\"Version\":\"2012-10-17\",		 	 	 
                \"Id\":\"default\",
                \"Statement\":[{\"Sid\":\"Id-ehms-invocation2\",
                                \"Effect\":\"Allow\",
                                \"Principal\":{\"AWS\":\"arn:aws:iam::444455556666:user/perf1-test\"},
                                \"Action\":\"lambda:InvokeFunction\",
                                \"Resource\":\"arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new\"}]}"
}
```

Dopo aver aggiunto l'autorizzazione, è possibile utilizzare un ARN completo della funzione Lambda su `us-east-1` come mostrato di seguito quando si definisce un catalogo `ehms`:

```
arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new
```

Per informazioni sulla invocazione tra regioni, vedere [Chiama una funzione Lambda tra le regioni](#hive-metastore-iam-access-lambda-cross-region-invocation) in questo argomento.

### Concedere l’accesso tra account ai dati
<a name="hive-metastore-iam-access-lambda-granting-cross-account-access-to-data"></a>

Prima di poter eseguire query Athena, è necessario concedere l'accesso tra account ai dati in Amazon S3. Questa operazione può essere eseguita in uno dei seguenti modi:
+ Aggiornare la policy dell'elenco di controllo dell'accesso del bucket Amazon S3 con un [ID utente canonico](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html).
+ Aggiungere l'accesso tra account alla policy del bucket Amazon S3.

Ad esempio, aggiungere la policy seguente alla policy del bucket Amazon S3 nell'account `111122223333` per consentire all'account `444455556666` di leggere i dati dalla posizione Amazon S3 specificata.

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Sid": "Stmt1234567890123", "Effect":
    "Allow", "Principal": { "AWS":
        "arn:aws:iam::444455556666:user/perf1-test"
    }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::athena-test/lambda/dataset/*" } ]
    }
```

------

**Nota**  
Potrebbe essere necessario concedere l'accesso tra account ad Amazon S3 non solo ai dati, ma anche alla posizione di spill Amazon S3. La funzione Lambda esegue lo spillover dei dati aggiuntivi nella posizione di spill quando la dimensione dell'oggetto di risposta supera una determinata soglia. Vedere l'inizio di questo argomento per una policy di esempio.

Nell'esempio corrente, dopo aver concesso l'accesso tra account a `444455556666,`, `444455556666` può utilizzare il catalogo `ehms` in `account` per eseguire query sulle tabelle definite nell’account `111122223333`.

Nell'esempio seguente, il profilo di SQL Workbench `perf-test-1` è per l’account `444455556666`. La query utilizza il catalogo `ehms` per accedere al metastore Hive e ai dati Amazon S3 nell'account `111122223333`.

![\[Accesso a metastore Hive e dati Amazon S3 tra account in SQL Workbench.\]](http://docs.aws.amazon.com/it_it/athena/latest/ug/images/hive-metastore-iam-access-lambda-1.png)


# Autorizzazioni necessarie per creare il connettore e il catalogo Athena
<a name="athena-catalog-access"></a>

Per invocare Athena `CreateDataCatalog`, è necessario creare un ruolo con le seguenti autorizzazioni:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
  {
  "Sid": "ECR",
  "Effect": "Allow",
  "Action": [
  "ecr:BatchGetImage",
  "ecr:GetDownloadUrlForLayer"
  ],
  "Resource": "arn:aws:ecr:*:*:repository/*"
  },
  {
  "Effect": "Allow",
  "Action": [
  "s3:GetObject",
  "glue:TagResource",
  "glue:GetConnection",
  "glue:CreateConnection",
  "glue:DeleteConnection",
  "glue:UpdateConnection",
  "serverlessrepo:CreateCloudFormationTemplate",
  "serverlessrepo:GetCloudFormationTemplate",
  "cloudformation:CreateStack",
  "cloudformation:DeleteStack",
  "cloudformation:DescribeStacks",
  "cloudformation:CreateChangeSet",
  "cloudformation:DescribeAccountLimits",
  "cloudformation:CreateStackSet",
  "cloudformation:ValidateTemplate",
  "cloudformation:CreateUploadBucket",
  "cloudformation:DescribeStackDriftDetectionStatus",
  "cloudformation:ListExports",
  "cloudformation:ListStacks",
  "cloudformation:EstimateTemplateCost",
  "cloudformation:ListImports",
  "lambda:InvokeFunction",
  "lambda:GetFunction",
  "lambda:DeleteFunction",
  "lambda:CreateFunction",
  "lambda:TagResource",
  "lambda:ListFunctions",
  "lambda:GetAccountSettings",
  "lambda:ListEventSourceMappings",
  "lambda:ListVersionsByFunction",
  "lambda:GetFunctionConfiguration",
  "lambda:PutFunctionConcurrency",
  "lambda:UpdateFunctionConfiguration",
  "lambda:UpdateFunctionCode",
  "lambda:DeleteFunctionConcurrency",
  "lambda:RemovePermission",
  "lambda:AddPermission",
  "lambda:ListTags",
  "lambda:GetAlias",
  "lambda:GetPolicy",
  "lambda:ListAliases",
  "ec2:DescribeSecurityGroups",
  "ec2:DescribeSubnets",
  "ec2:DescribeVpcs",
  "secretsmanager:ListSecrets",
  "glue:GetCatalogs"
  ],
  "Resource": "*"
  },
  {
  "Effect": "Allow",
  "Action": [
  "iam:AttachRolePolicy",
  "iam:DetachRolePolicy",
  "iam:DeleteRolePolicy",
  "iam:PutRolePolicy",
  "iam:GetRolePolicy",
  "iam:CreateRole",
  "iam:TagRole",
  "iam:DeleteRole",
  "iam:GetRole",
  "iam:PassRole",
  "iam:ListRoles",
  "iam:ListAttachedRolePolicies",
  "iam:ListRolePolicies",
  "iam:GetPolicy",
  "iam:UpdateRole"
  ],
  "Resource": [
  "arn:aws:iam::*:role/RoleName",
  "arn:aws:iam::111122223333:policy/*"
  ]
  }
  ]
  }
```

------

# Consenti l’accesso alla query federata Athena
<a name="federated-query-iam-access"></a>

Negli esempi di policy di autorizzazione in questo argomento vengono illustrate le operazioni consentite obbligatorie e le risorse per le quali sono consentite. Esamina attentamente queste policy e modificale in base ai tuoi requisiti prima di collegarle a identità IAM.

Per informazioni sul collegamento di policy alle identità IAM, consulta [Aggiunta e rimozione di autorizzazioni alle identità IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) nella [Guida per l'utente di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/).
+  [Example policy to allow an IAM principal to run and return results using Athena Federated Query](#fed-using-iam) 
+  [Example Policy to Allow an IAM Principal to Create a Data Source Connector](#fed-creating-iam) 

**Example : consenti a un principale IAM di eseguire e restituire risultati utilizzando la query federata Athena**  
La seguente policy di autorizzazione basata su identità consente operazioni richieste da un utente o un altro principale IAM per utilizzare la query federata Athena. I principali autorizzati a eseguire queste operazioni sono in grado di eseguire query che specificano i cataloghi Athena associati a un'origine dati federata.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Athena",
            "Effect": "Allow",
            "Action": [
                "athena:GetDataCatalog",
                "athena:GetQueryExecution",
                "athena:GetQueryResults",
                "athena:GetWorkGroup",
                "athena:StartQueryExecution",
                "athena:StopQueryExecution"
            ],
            "Resource": [
                "arn:aws:athena:*:111122223333:workgroup/WorkgroupName",
                "arn:aws:athena:us-east-1:111122223333:datacatalog/DataCatalogName"
            ]
        },
        {
            "Sid": "ListAthenaWorkGroups",
            "Effect": "Allow",
            "Action": "athena:ListWorkGroups",
            "Resource": "*"
        },
        {
            "Sid": "Lambda",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:OneAthenaLambdaFunction",
                "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction"
            ]
        },
        {
            "Sid": "S3",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:ListMultipartUploadParts",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::MyLambdaSpillBucket",
                "arn:aws:s3:::MyLambdaSpillBucket/*",
                "arn:aws:s3:::MyQueryResultsBucket",
                "arn:aws:s3:::MyQueryResultsBucket/*"
            ]
        }
    ]
}
```


**Spiegazione delle autorizzazioni**  

| Operazioni consentite | Spiegazione | 
| --- | --- | 
|  <pre> "athena:GetQueryExecution", <br /> "athena:GetQueryResults",<br /> "athena:GetWorkGroup",<br /> "athena:StartQueryExecution",<br /> "athena:StopQueryExecution"</pre>  |  Autorizzazioni Athena richieste per eseguire query federate.  | 
|  <pre> "athena:GetDataCatalog",<br /> "athena:GetQueryExecution,"<br /> "athena:GetQueryResults",<br /> "athena:GetWorkGroup",<br /> "athena:StartQueryExecution",<br /> "athena:StopQueryExecution"</pre>  |  Autorizzazioni Athena necessarie per eseguire query di visualizzazione federate. L’azione è necessaria per le visualizzazioni `GetDataCatalog`.  | 
|  <pre>"lambda:InvokeFunction"</pre>  | Consente alle interrogazioni di richiamare le AWS Lambda funzioni per le AWS Lambda funzioni specificate nel Resource blocco. Ad esempioarn:aws:lambda:\$1:MyAWSAcctId:function:MyAthenaLambdaFunction, where MyAthenaLambdaFunction specifica il nome di una funzione Lambda da richiamare. Più funzioni possono essere specificate come mostrato nell’esempio. | 
|  <pre>"s3:AbortMultipartUpload",<br />"s3:GetBucketLocation",<br />"s3:GetObject",<br />"s3:ListBucket",<br />"s3:ListMultipartUploadParts",<br />"s3:PutObject"</pre>  |  Le autorizzazioni `s3:ListBucket` e `s3:GetBucketLocation` sono necessarie per accedere al bucket di output delle query per i principali IAM che eseguono `StartQueryExecution`. `s3:PutObject``s3:ListMultipartUploadParts`, e `s3:AbortMultipartUpload` consentono di scrivere i risultati delle query in tutte le sottocartelle del bucket dei risultati della query come specificato dall'identificatore di `arn:aws:s3:::MyQueryResultsBucket/*` risorsa, dove si trova il bucket dei risultati *MyQueryResultsBucket* della query Athena. Per ulteriori informazioni, consulta [Lavora con i risultati delle query e le query recenti](querying.md). `s3:GetObject`consente la lettura dei risultati delle query e della cronologia delle query per la risorsa specificata come`arn:aws:s3:::MyQueryResultsBucket`, where *MyQueryResultsBucket* è il bucket dei risultati delle query Athena. `s3:GetObject`consente inoltre la lettura dalla risorsa specificata come`"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*"`, where *MyLambdaSpillPrefix* è specificata nella configurazione della funzione o delle funzioni Lambda richiamate.  | 

**Example : consente a un principale IAM di creare un connettore origine dati**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "lambda:ListVersionsByFunction",
                "iam:CreateRole",
                "lambda:GetFunctionConfiguration",
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "lambda:PutFunctionConcurrency",
                "iam:PassRole",
                "iam:DetachRolePolicy",
                "lambda:ListTags",
                "iam:ListAttachedRolePolicies",
                "iam:DeleteRolePolicy",
                "lambda:DeleteFunction",
                "lambda:GetAlias",
                "iam:ListRolePolicies",
                "iam:GetRole",
                "iam:GetPolicy",
                "lambda:InvokeFunction",
                "lambda:GetFunction",
                "lambda:ListAliases",
                "lambda:UpdateFunctionConfiguration",
                "iam:DeleteRole",
                "lambda:UpdateFunctionCode",
                "s3:GetObject",
                "lambda:AddPermission",
                "iam:UpdateRole",
                "lambda:DeleteFunctionConcurrency",
                "lambda:RemovePermission",
                "iam:GetRolePolicy",
                "lambda:GetPolicy"
            ],
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunctionsPrefix*",
                "arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/*",
                "arn:aws:iam::*:role/RoleName",
                "arn:aws:iam::111122223333:policy/*"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateUploadBucket",
                "cloudformation:DescribeStackDriftDetectionStatus",
                "cloudformation:ListExports",
                "cloudformation:ListStacks",
                "cloudformation:ListImports",
                "lambda:ListFunctions",
                "iam:ListRoles",
                "lambda:GetAccountSettings",
                "ec2:DescribeSecurityGroups",
                "cloudformation:EstimateTemplateCost",
                "ec2:DescribeVpcs",
                "lambda:ListEventSourceMappings",
                "cloudformation:DescribeAccountLimits",
                "ec2:DescribeSubnets",
                "cloudformation:CreateStackSet",
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "cloudformation:*",
            "Resource": [
                "arn:aws:cloudformation:*:111122223333:stack/aws-serverless-repository-MyCFStackPrefix*/*",
                "arn:aws:cloudformation:*:111122223333:stack/serverlessrepo-MyCFStackPrefix*/*",
                "arn:aws:cloudformation:*:*:transform/Serverless-*",
                "arn:aws:cloudformation:*:111122223333:stackset/aws-serverless-repository-MyCFStackPrefix*:*",
                "arn:aws:cloudformation:*:111122223333:stackset/serverlessrepo-MyCFStackPrefix*:*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "serverlessrepo:*",
            "Resource": "arn:aws:serverlessrepo:*:*:applications/*"
        },
        {
            "Sid": "ECR",
            "Effect": "Allow",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "arn:aws:ecr:*:*:repository/*"
        }
    ]
}
```


**Spiegazione delle autorizzazioni**  

| Operazioni consentite | Spiegazione | 
| --- | --- | 
|  <pre>"lambda:CreateFunction",<br />"lambda:ListVersionsByFunction",<br />"lambda:GetFunctionConfiguration",<br />"lambda:PutFunctionConcurrency",<br />"lambda:ListTags",<br />"lambda:DeleteFunction",<br />"lambda:GetAlias",<br />"lambda:InvokeFunction",<br />"lambda:GetFunction",<br />"lambda:ListAliases",<br />"lambda:UpdateFunctionConfiguration",<br />"lambda:UpdateFunctionCode",<br />"lambda:AddPermission",<br />"lambda:DeleteFunctionConcurrency",<br />"lambda:RemovePermission",<br />"lambda:GetPolicy"<br />"lambda:GetAccountSettings",<br />"lambda:ListFunctions",<br />"lambda:ListEventSourceMappings",<br /></pre>  |  Consente la creazione e la gestione delle funzioni Lambda elencate come risorse. Nell’esempio, un prefisso del nome viene utilizzato nell’identificatore della risorsa `arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunctionsPrefix*`, dove `MyAthenaLambdaFunctionsPrefix` è un prefisso condiviso utilizzato nel nome di un gruppo di funzioni Lambda in modo che non sia necessario specificarle individualmente come risorse. È possibile specificare una o più risorse della funzione Lambda.  | 
|  <pre>"s3:GetObject"</pre>  | Consente la lettura di un bucket che AWS Serverless Application Repository richiede quanto specificato dall'identificatore arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/\$1 della risorsa. Questo bucket può essere specifico per l'account. | 
|  <pre>"cloudformation:*"</pre>  |  Consente la creazione e la gestione degli CloudFormation stack specificati dalla risorsa. `MyCFStackPrefix` Questi stack e stackset sono il modo AWS Serverless Application Repository in cui distribuisce i connettori e. UDFs  | 
|  <pre>"serverlessrepo:*"</pre>  | Consente la ricerca, la visualizzazione, la pubblicazione e l'aggiornamento delle applicazioni nel campo specificato dall' AWS Serverless Application Repository identificatore di risorsa. arn:aws:serverlessrepo:\$1:\$1:applications/\$1 | 
|  <pre>"ecr:BatchGetImage",<br />"ecr:GetDownloadUrlForLayer"</pre>  |  Consente alla funzione Lambda creata di accedere all’immagine ECR del connettore di federazione.  | 

# Consenti l'accesso ad Athena UDFs: politiche di esempio
<a name="udf-iam-access"></a>

Negli esempi di policy di autorizzazione in questo argomento vengono illustrate le operazioni consentite obbligatorie e le risorse per le quali sono consentite. Esamina attentamente queste policy e modificale in base si tuoi requisiti prima di collegare policy di autorizzazione simili a identità IAM.
+  [Example Policy to Allow an IAM Principal to Run and Return Queries that Contain an Athena UDF Statement](#udf-using-iam) 
+  [Example Policy to Allow an IAM Principal to Create an Athena UDF](#udf-creating-iam) 

**Example : consenti a un principale IAM di eseguire e restituire query contenenti un'istruzione UDF Athena**  
La seguente policy di autorizzazione basata su identità consente operazioni richieste da un utente o un altro principale IAM per eseguire query che utilizzano istruzioni UDF Athena.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "athena:StartQueryExecution",
                "lambda:InvokeFunction",
                "athena:GetQueryResults",
                "s3:ListMultipartUploadParts",
                "athena:GetWorkGroup",
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "athena:StopQueryExecution",
                "athena:GetQueryExecution",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:athena:*:MyAWSAcctId:workgroup/MyAthenaWorkGroup",
                "arn:aws:s3:::MyQueryResultsBucket/*",
                "arn:aws:lambda:*:MyAWSAcctId:function:OneAthenaLambdaFunction",
                "arn:aws:lambda:*:MyAWSAcctId:function:AnotherAthenaLambdaFunction"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "athena:ListWorkGroups",
            "Resource": "*"
        }
    ]
}
```


**Spiegazione delle autorizzazioni**  

| Operazioni consentite | Spiegazione | 
| --- | --- | 
|  <pre>"athena:StartQueryExecution",<br /> "athena:GetQueryResults",<br /> "athena:GetWorkGroup",<br /> "athena:StopQueryExecution",<br /> "athena:GetQueryExecution",<br /></pre>  |  Autorizzazioni Athena richieste per eseguire query nel gruppo di lavoro `MyAthenaWorkGroup`.  | 
|  <pre>"s3:PutObject",<br />"s3:GetObject",<br />"s3:AbortMultipartUpload"</pre>  |  `s3:PutObject`e `s3:AbortMultipartUpload` consentono di scrivere i risultati delle query in tutte le sottocartelle del bucket dei risultati della query come specificato dall'identificatore di `arn:aws:s3:::MyQueryResultsBucket/*` risorsa, dove si trova il bucket dei risultati *MyQueryResultsBucket* della query Athena. Per ulteriori informazioni, consulta [Lavora con i risultati delle query e le query recenti](querying.md). `s3:GetObject`consente la lettura dei risultati delle query e della cronologia delle query per la risorsa specificata come`arn:aws:s3:::MyQueryResultsBucket`, where *MyQueryResultsBucket* è il bucket dei risultati delle query Athena. Per ulteriori informazioni, consulta [Lavora con i risultati delle query e le query recenti](querying.md). `s3:GetObject`consente inoltre la lettura dalla risorsa specificata come`"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*"`, where *MyLambdaSpillPrefix* è specificata nella configurazione della funzione o delle funzioni Lambda richiamate.  | 
|  <pre>"lambda:InvokeFunction"</pre>  | Consente alle interrogazioni di richiamare AWS Lambda le funzioni specificate nel blocco. Resource Ad esempioarn:aws:lambda:\$1:MyAWSAcctId:function:MyAthenaLambdaFunction, where MyAthenaLambdaFunction specifica il nome di una funzione Lambda da richiamare. Più funzioni possono essere specificate come mostrato nell'esempio. | 

**Example : consente a un principale IAM di creare un'UDF Athena**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "lambda:ListVersionsByFunction",
                "iam:CreateRole",
                "lambda:GetFunctionConfiguration",
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "lambda:PutFunctionConcurrency",
                "iam:PassRole",
                "iam:DetachRolePolicy",
                "lambda:ListTags",
                "iam:ListAttachedRolePolicies",
                "iam:DeleteRolePolicy",
                "lambda:DeleteFunction",
                "lambda:GetAlias",
                "iam:ListRolePolicies",
                "iam:GetRole",
                "iam:GetPolicy",
                "lambda:InvokeFunction",
                "lambda:GetFunction",
                "lambda:ListAliases",
                "lambda:UpdateFunctionConfiguration",
                "iam:DeleteRole",
                "lambda:UpdateFunctionCode",
                "s3:GetObject",
                "lambda:AddPermission",
                "iam:UpdateRole",
                "lambda:DeleteFunctionConcurrency",
                "lambda:RemovePermission",
                "iam:GetRolePolicy",
                "lambda:GetPolicy"
            ],
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunctionsPrefix*",
                "arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/*",
                "arn:aws:iam::*:role/RoleName",
                "arn:aws:iam::111122223333:policy/*"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateUploadBucket",
                "cloudformation:DescribeStackDriftDetectionStatus",
                "cloudformation:ListExports",
                "cloudformation:ListStacks",
                "cloudformation:ListImports",
                "lambda:ListFunctions",
                "iam:ListRoles",
                "lambda:GetAccountSettings",
                "ec2:DescribeSecurityGroups",
                "cloudformation:EstimateTemplateCost",
                "ec2:DescribeVpcs",
                "lambda:ListEventSourceMappings",
                "cloudformation:DescribeAccountLimits",
                "ec2:DescribeSubnets",
                "cloudformation:CreateStackSet",
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "cloudformation:*",
            "Resource": [
                "arn:aws:cloudformation:*:111122223333:stack/aws-serverless-repository-MyCFStackPrefix*/*",
                "arn:aws:cloudformation:*:111122223333:stack/serverlessrepo-MyCFStackPrefix*/*",
                "arn:aws:cloudformation:*:*:transform/Serverless-*",
                "arn:aws:cloudformation:*:111122223333:stackset/aws-serverless-repository-MyCFStackPrefix*:*",
                "arn:aws:cloudformation:*:111122223333:stackset/serverlessrepo-MyCFStackPrefix*:*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "serverlessrepo:*",
            "Resource": "arn:aws:serverlessrepo:*:*:applications/*"
        },
        {
            "Sid": "ECR",
            "Effect": "Allow",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "arn:aws:ecr:*:*:repository/*"
        }
    ]
}
```


**Spiegazione delle autorizzazioni**  

| Operazioni consentite | Spiegazione | 
| --- | --- | 
|  <pre>"lambda:CreateFunction",<br />"lambda:ListVersionsByFunction",<br />"lambda:GetFunctionConfiguration",<br />"lambda:PutFunctionConcurrency",<br />"lambda:ListTags",<br />"lambda:DeleteFunction",<br />"lambda:GetAlias",<br />"lambda:InvokeFunction",<br />"lambda:GetFunction",<br />"lambda:ListAliases",<br />"lambda:UpdateFunctionConfiguration",<br />"lambda:UpdateFunctionCode",<br />"lambda:AddPermission",<br />"lambda:DeleteFunctionConcurrency",<br />"lambda:RemovePermission",<br />"lambda:GetPolicy"<br />"lambda:GetAccountSettings",<br />"lambda:ListFunctions",<br />"lambda:ListEventSourceMappings",<br /></pre>  |  Consente la creazione e la gestione delle funzioni Lambda elencate come risorse. Nell’esempio, un prefisso del nome viene utilizzato nell’identificatore della risorsa `arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunctionsPrefix*`, dove *MyAthenaLambdaFunctionsPrefix* è un prefisso condiviso utilizzato nel nome di un gruppo di funzioni Lambda in modo che non sia necessario specificarle individualmente come risorse. È possibile specificare una o più risorse della funzione Lambda.  | 
|  <pre>"s3:GetObject"</pre>  | Consente la lettura di un bucket che AWS Serverless Application Repository richiede quanto specificato dall'identificatore arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/\$1 della risorsa. | 
|  <pre>"cloudformation:*"</pre>  |  Consente la creazione e la gestione degli CloudFormation stack specificati dalla risorsa. *MyCFStackPrefix* Questi stack e stackset sono il modo AWS Serverless Application Repository in cui distribuisce i connettori e. UDFs  | 
|  <pre>"serverlessrepo:*"</pre>  | Consente la ricerca, la visualizzazione, la pubblicazione e l'aggiornamento delle applicazioni nel campo specificato dall' AWS Serverless Application Repository identificatore di risorsa. arn:aws:serverlessrepo:\$1:\$1:applications/\$1 | 

# Autorizzazione per l’accesso per ML con Athena
<a name="machine-learning-iam-access"></a>

I principali IAM che eseguono query Athena ML devono poter eseguire l'operazione `sagemaker:invokeEndpoint` per gli endpoint Sagemaker che utilizzano. Includi una dichiarazione di policy simile alla seguente nelle policy di autorizzazione basate su identità collegate a identità utente. Inoltre, allega la [AWS politica gestita: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy), che concede l'accesso completo alle operazioni Athena o a una policy inline modificata che consente un sottoinsieme di operazioni.

Sostituisci `arn:aws:sagemaker:region:AWSAcctID:ModelEndpoint` nell'esempio con l'ARN o ARNs degli endpoint del modello da utilizzare nelle query. Per ulteriori informazioni, consulta [Azioni, risorse e chiavi di condizione per l' SageMaker IA](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html) nel *Service* Authorization Reference.

```
{
            "Effect": "Allow",
            "Action": [
                "sagemaker:invokeEndpoint"
            ],
            "Resource": "arn:aws:sagemaker:us-west-2:123456789012:workteam/public-crowd/default"
}
```

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

# Per abilitare l’accesso federato all’API Athena:
<a name="access-federation-saml"></a>

Questa sezione illustra l'accesso federato che consente a un utente o a un'applicazione client nell'organizzazione di chiamare le operazioni API di Amazon Athena. In questo caso, gli utenti dell'organizzazione non hanno accesso diretto ad Athena. Le credenziali utente vengono invece gestite all'esterno di AWS Microsoft Active Directory. Active Directory supporta [SAML 2.0](https://wiki.oasis-open.org/security) (Security Assertion Markup Language 2.0).

Per autenticare gli utenti in questo scenario, è necessario utilizzare il driver JDBC o ODBC con supporto di SAML 2.0 per accedere ad Active Directory Federation Services (AD FS) 3.0 e consentire a un'applicazione client di chiamare le operazioni API di Athena.

Per ulteriori informazioni sul supporto SAML 2.0 su AWS, consulta [Informazioni sulla federazione SAML 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) nella Guida per l'utente *IAM*. 

**Nota**  
L'accesso federato all'API di Athena è supportato per un determinato tipo di provider di identità (IdP), Active Directory Federation Service (AD FS 3.0), parte di Windows Server. L'accesso federato non è compatibile con la funzionalità di propagazione delle identità attendibili di Centro identità IAM. L'accesso viene stabilito attraverso le versioni dei driver JDBC o ODBC che supportano SAML 2.0. Per informazioni, consulta [Connettersi ad Amazon Athena con JDBC](connect-with-jdbc.md) e [Connettersi ad Amazon Athena con ODBC](connect-with-odbc.md).

**Topics**
+ [Prima di iniziare](#access-federation-before-you-begin)
+ [Informazioni sul processo di autenticazione](#access-federation-diagram)
+ [Procedura: accesso federato basato su SAML all’API Athena](#access-federation-procedure)

## Prima di iniziare
<a name="access-federation-before-you-begin"></a>

 Prima di iniziare, completa i seguenti prerequisiti: 
+ All'interno dell'organizzazione, installa e configura ADFS 3.0 come IdP.
+ Installare e configurare le versioni più recenti disponibili dei driver JDBC e ODBC sui client che vengono utilizzati per l'accesso ad Athena. Il driver deve includere il supporto per l'accesso federato compatibile con SAML 2.0. Per informazioni, consulta [Connettersi ad Amazon Athena con JDBC](connect-with-jdbc.md) e [Connettersi ad Amazon Athena con ODBC](connect-with-odbc.md).

## Informazioni sul processo di autenticazione
<a name="access-federation-diagram"></a>

Il diagramma seguente illustra il processo di autenticazione dell’accesso federato all’API Athena.

![\[Diagramma dell'accesso federato all'API Athena.\]](http://docs.aws.amazon.com/it_it/athena/latest/ug/images/athena-saml-based-federation.png)


1. Un utente dell'organizzazione utilizza un'applicazione client con il driver JDBC o ODBC per richiedere l'autenticazione dall'IdP dell'organizzazione. L'IdP è ADFS 3.0.

1. L'IdP autentica l'utente rispetto ad Active Directory, che è l'archivio identità dell'organizzazione.

1. L'IdP crea un'asserzione SAML con informazioni sull'utente e invia l'asserzione all'applicazione client tramite il driver JDBC o ODBC.

1. Il driver JDBC o ODBC richiama l'operazione dell'API AWS Security Token Service [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html), passandole i seguenti parametri:
   + L'ARN del fornitore SAML
   + L'ARN del ruolo da assumere
   + L'asserzione SAML dell'IdP

   *Per ulteriori informazioni, consulta [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html), nell'API Reference.AWS Security Token Service *

1. La risposta API all'applicazione client tramite il driver JDBC o ODBC include le credenziali di sicurezza temporanee.

1. L'applicazione client utilizza le credenziali di sicurezza temporanee per chiamare le operazioni API Athena, consentendo agli utenti di accedere alle operazioni API Athena.

## Procedura: accesso federato basato su SAML all’API Athena
<a name="access-federation-procedure"></a>

Questa procedura stabilisce la fiducia tra l'IdP della tua organizzazione e il AWS tuo account per abilitare l'accesso federato basato su SAML alle operazioni dell'API Amazon Athena.

**Per abilitare l'accesso federato all'API Athena:**

1. Nella tua organizzazione, registrati AWS come fornitore di servizi (SP) nel tuo IdP. Questo processo è noto come *relazione di trust*. Per ulteriori informazioni, consultare [Configurazione del provider di identità SAML 2.0 con una relazione di trust](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html) nella *Guida per l'utente di IAM*. Come parte di questa operazione, eseguire questi passaggi:

   1. Ottenere il documento di metadati SAML di esempio da questo URL: [https://signin.aws.amazon.com/static/saml-metadata.xml](https://signin.aws.amazon.com/static/saml-metadata.xml).

   1. Nell'IdP della tua organizzazione (ADFS), genera un file XML di metadati equivalente che descriva il tuo IdP come provider di identità per. AWS Il file di metadati deve includere il nome dell'emittente, la data di creazione, la data di scadenza e le chiavi AWS utilizzate per convalidare le risposte di autenticazione (asserzioni) dell'organizzazione. 

1. Nella console &IAM; creare un'entità provider di identità SAML. Per ulteriori informazioni, consulta [Creazione di provider di identità SAML](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) nella *Guida per l'utente di IAM*. Come parte di questo passaggio, eseguire queste operazioni: 

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

   1. Caricare il documento di metadati SAML generato dall'IdP (ADFS) al punto 1 di questa procedura. 

1. Nella console IAM, creare uno o più ruoli IAM per l'IdP. Per ulteriori informazioni, consultare [Creazione di un ruolo per un provider di identità di terze parti (federazione)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) nella *Guida per l'utente di IAM*. Come parte di questo passaggio, eseguire queste operazioni: 
   + Nella policy di autorizzazione del ruolo, elencare le operazioni che gli utenti dell'organizzazione possono effettuare in AWS. 
   + Nella policy di affidabilità del ruolo, impostare come principale l'entità provider SAML creata al punto 2 di questa procedura. 

   Ciò stabilisce una relazione di fiducia tra l'organizzazione e. AWS

1. Nell'IdP dell'organizzazione (ADFS), definire le asserzioni che associano utenti o gruppi dell'organizzazione ai ruoli IAM. L'associazione di utenti e gruppi ai ruoli IAM è nota anche come *regola di attestazione*. Si noti che i diversi utenti e gruppi dell'organizzazione potrebbero essere mappati a diversi ruoli IAM. 

   Per informazioni sulla configurazione della mappatura in ADFS, consulta il post del blog: [Abilitare la federazione all' AWS utilizzo di Windows Active Directory, ADFS](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/) e SAML 2.0.

1. Installare e configurare il driver JDBC o ODBC con il supporto di SAML 2.0. Per informazioni, consulta [Connettersi ad Amazon Athena con JDBC](connect-with-jdbc.md) e [Connettersi ad Amazon Athena con ODBC](connect-with-odbc.md).

1. Specificare la stringa di connessione dall'applicazione al driver JDBC o ODBC. Per informazioni sulla stringa di connessione che deve essere utilizzata dall’applicazione, consultare l’argomento *Utilizzo del provider di credenziali di Active Directory Federation Services (ADFS)* nella *Guida all’installazione e alla configurazione del driver JDBC* o un argomento simile nella *Guida all’installazione e alla configurazione del driver ODBC* disponibile in formato PDF scaricabile dagli argomenti [Connettersi ad Amazon Athena con JDBC](connect-with-jdbc.md) e [Connettersi ad Amazon Athena con ODBC](connect-with-odbc.md).

   Segue un riepilogo generale della configurazione della stringa di connessione ai driver:

   1. In `AwsCredentialsProviderClass configuration`, impostare `com.simba.athena.iamsupport.plugin.AdfsCredentialsProvider` per indicare che si desidera utilizzare l'autenticazione basata su SAML 2.0 tramite IdP ADFS. 

   1. Per `idp_host`, fornire il nome dell'host del server dell'IdP ADFS.

   1. Per `idp_port`, fornire il numero di porta che l'IdP ADFS ascolta per la richiesta di asserzione SAML.

   1. Per `UID` e `PWD`, fornire le credenziali utente di dominio AD. Quando si utilizza il driver su Windows, se `UID` e `PWD` non vengono forniti, il driver tenta di ottenere le credenziali utente dell'utente che ha effettuato l'accesso al computer Windows.

   1. Facoltativamente, impostare `ssl_insecure` su `true`. In questo caso, il driver non controlla l'autenticità del certificato SSL per il server dell'IdP ADFS. L'impostazione di `true` è necessaria se il certificato SSL dell'IdP ADFS non è stato configurato in modo da essere considerato affidabile dal driver.

   1. Per abilitare la mappatura di un utente o gruppo di dominio Active Directory a uno o più ruoli IAM (come menzionato al punto 4 di questa procedura), in `preferred_role` per la connessione JDBC o ODBC, specificare il ruolo IAM (ARN) da assumere per la connessione del driver. La specifica di `preferred_role` è facoltativa ed è utile se il ruolo non è il primo ruolo elencato nella regola di attestazione.

   Come risultato della procedura, si verificano le seguenti operazioni:

   1. [Il driver JDBC o ODBC chiama l'API AWS STS[AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) e le trasmette le asserzioni, come mostrato nel passaggio 4 del diagramma di architettura.](#access-federation-diagram) 

   1. AWS si assicura che la richiesta di assunzione del ruolo provenga dall'IdP a cui si fa riferimento nell'entità del provider SAML. 

   1. Se la richiesta ha esito positivo, l'operazione API AWS STS [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) restituisce un set di credenziali di sicurezza temporanee, che l'applicazione client utilizza per effettuare richieste firmate ad Athena. 

      L'applicazione ha ora le informazioni sull'utente corrente e può accedere ad Athena in modo programmatico. 