

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

# Inserire i dati nel AWS Glue Data Catalog
<a name="bring-your-data-overview"></a>

Puoi creare cataloghi federati in AWS Glue Data Catalog (Data Catalog) e unificare i dati tra i data lake Amazon S3 e i data warehouse Amazon Redshift. Puoi anche integrare i dati dei tuoi database operativi come Amazon DynamoDB e fonti di dati di terze parti come PostgreSQL, BigQuery Google, MySQL, tra le altre. Il Data Catalog fornisce un archivio centralizzato di metadati che semplifica la gestione e la scoperta dei dati su sistemi diversi.

Il Data Catalog si integra con oltre 30 fonti di dati esterne tramite connettori federati. Con questa integrazione, puoi interrogare i dati da queste fonti esterne senza dover creare pipeline di dati in cui inserire prima i dati. AWS 

Dopo aver catalogato i dati esterni, puoi utilizzarli AWS Lake Formation per gestire centralmente le autorizzazioni di accesso ai dati nel Data Catalog. Gli amministratori di Data Lake possono concedere autorizzazioni di accesso granulari ad altri principali IAM (utenti o ruoli) all'interno dello stesso account o tra più account utilizzando metodi di controllo degli accessi basati su tag (LF-Tags) e risorse denominate.

Utilizzando LF-Tags, gli amministratori di dati possono organizzare in modo logico le risorse in base ad attributi come dominio e livello di sensibilità, semplificando la gestione delle autorizzazioni e garantendo al contempo controlli di accesso coerenti tra i servizi di analisi e apprendimento automatico, tra cui Athena, Amazon EMR o Redshift Spectrum. AWS Glue 

Il Data Catalog fornisce i seguenti metodi per gestire dati e autorizzazioni su set di dati esterni e metastore esterni:
+ **Integra i bucket Amazon S3 Table con Data Catalog**: puoi pubblicare e catalogare le tabelle Amazon S3 come oggetti Data Catalog e registrare il catalogo come posizione dati di Lake Formation dalla console di Lake Formation o utilizzando le operazioni API. AWS Glue 
+ **Importa i dati nei data warehouse di Amazon Redshift in AWS Glue Data Catalog**: registra un namespace o un cluster [Amazon Redshift esistente](https://docs.aws.amazon.com/redshift/index.html) con Data Catalog e crea un catalogo federato a più livelli nel Data Catalog. 

  Puoi accedere ai tuoi dati utilizzando qualsiasi motore di query compatibile con le specifiche OpenAPI del catalogo REST di Apache Iceberg, come Amazon EMR Serverless e Amazon Athena. 
+ **Federa Iceberg REST i cataloghi remoti su Data Catalog**: unifica i Iceberg REST cataloghi remoti a Data Catalog e accedi in modo sicuro alle tabelle remote archiviate Iceberg in Amazon S3 utilizzando motori di analisi. AWS 
+ **Entra nel Data Catalog da fonti di dati esterne**: collega il Data Catalog a fonti di dati esterne utilizzando AWS Glue connessioni e crea cataloghi federati per gestire centralmente le autorizzazioni di accesso sui set di dati utilizzando Lake Formation. Non è necessaria alcuna migrazione dei metadati nel Data Catalog. 
+ **Crea cataloghi per gestire le tabelle Amazon Redshift nel Data** Catalog: potresti non avere un cluster di produttori Amazon Redshift o un datashare Amazon Redshift disponibile oggi, ma desideri creare e gestire tabelle Amazon Redshift utilizzando Data Catalog. Puoi iniziare creando un catalogo AWS Glue gestito utilizzando il funzionamento dell'`glue:CreateCatalog`API o la AWS Lake Formation console impostando il tipo di catalogo come `Managed` e `Catalog source` come **Redshift**. 
+ **Pubblica le condivisioni di dati Amazon Redshift con Data Catalog: pubblica le condivisioni di dati** Amazon Redshift [su](https://docs.aws.amazon.com/redshift/index.html) Data Catalog e usa Lake Formation per gestire centralmente l'accesso ai dati delle condivisioni di dati e limitare l'accesso degli utenti.

  Puoi interrogare i tuoi dati utilizzando Amazon Redshift Spectrum. 
+  **Connetti Data Catalog a metastore Hive esterni:** collega il Data Catalog a metastore esterni per gestire le autorizzazioni di accesso ai set di dati in Amazon S3 utilizzando Lake Formation. Non è necessaria alcuna migrazione dei metadati nel Data Catalog. 
+ **Integra Lake Formation con AWS Data Exchange**: Lake Formation supporta la concessione di licenze di accesso ai tuoi dati tramite AWS Data Exchange. Se desideri concedere in licenza i tuoi dati di Lake Formation, consulta [Cosa c'è AWS Data Exchange](https://docs.aws.amazon.com/data-exchange/latest/userguide/what-is.html) nella *Guida AWS Data Exchange per l'utente*.

**Topics**
+ [Federazione dei cataloghi ai cataloghi Iceberg remoti](catalog-federation.md)
+ [Inserimento dei dati di Amazon Redshift nel AWS Glue Data Catalog](managing-namespaces-datacatalog.md)
+ [Federazione in fonti di dati esterne in AWS Glue Data Catalog](federated-catalog-data-connection.md)
+ [Integrazione di Amazon S3 Tables con e AWS Glue Data Catalog AWS Lake Formation](create-s3-tables-catalog.md)
+ [Modifica dei controlli di accesso per l'integrazione con S3 Tables](manage-s3tables-catalog-integration.md)
+ [Creazione di un catalogo gestito di Amazon Redshift nel AWS Glue Data Catalog](create-rms-catalog.md)
+ [Gestione delle autorizzazioni per i dati in un datashare Amazon Redshift](data-sharing-redshift.md)
+ [Gestione delle autorizzazioni sui set di dati che utilizzano metastore esterni](data-sharing-hms.md)

# Federazione dei cataloghi ai cataloghi Iceberg remoti
<a name="catalog-federation"></a>

La federazione dei cataloghi AWS Glue fornisce un accesso diretto e sicuro alle tabelle Iceberg, archiviate in Amazon S3 e catalogate in cataloghi remoti, utilizzando motori di analisi. AWS La federazione dei cataloghi sincronizza i metadati tra Data Catalog e cataloghi remoti quando accedi a tabelle remote. È supportato da un'ampia varietà di motori di analisi, tra cui Amazon Redshift, Amazon EMR, Amazon Athena e motori di terze parti come Apache Spark e altri. AWS Glue

La federazione dei AWS Glue Data Catalog cataloghi comunica con i sistemi di catalogo remoti per scoprire le tabelle e Lake Formation per autorizzare l'accesso ai dati delle tabelle in Amazon S3. Quando esegui una query su una tabella federata, Data Catalog rileva le informazioni più recenti sulla tabella nel catalogo remoto al momento della query, ottenendo la posizione della tabella in Amazon S3, lo schema corrente e le informazioni sulla partizione. Il tuo motore di analisi (Amazon Athena, Amazon Redshift, Amazon EMR) utilizza quindi queste informazioni per accedere ai file di dati Iceberg direttamente da Amazon S3. Lake Formation gestisce l'accesso alle tabelle distribuendo credenziali mirate ai dati della tabella archiviati in Amazon S3, permettendo ai motori di applicare autorizzazioni granulari alle tabelle federate.

## Caratteristiche di Catalog Federation
<a name="catalog-federation-features"></a>

**Governato utilizzando Lake Formation**  
I cataloghi Federated Iceberg in Data Catalog sono risorse registrate da Lake Formation, che consentono di concedere autorizzazioni granulari a livello di riga, colonna e cella alle tabelle Iceberg nei cataloghi Iceberg federati utilizzando le sovvenzioni Lake Formation. I cataloghi Federated Iceberg e gli oggetti associati possono essere condivisi in modo sicuro tra gli account. AWS I cataloghi Federated Iceberg funzionano anche con il controllo degli accessi basato su Lake Formation Tag, che consente di scalare la governance utilizzando i tag.

**Configurazioni di rete**  
La federazione dei cataloghi supporta connessioni dirette a sorgenti di cataloghi remote utilizzando la connettività HTTPS standard. Supporta anche la connettività tramite Amazon VPC quando si desidera mantenere l'isolamento della rete e la connettività utilizzando il supporto proxy quando si desidera una comunicazione sicura attraverso i firewall dell'organizzazione.

**Topics**
+ [Caratteristiche di Catalog Federation](#catalog-federation-features)
+ [Catalogo Federate to Snowflake Iceberg](catalog-federation-snowflake.md)
+ [Federa a Databricks Unity Catalog](catalog-federation-databricks.md)

# Catalogo Federate to Snowflake Iceberg
<a name="catalog-federation-snowflake"></a>

AWS Glue Data Catalog si associa all'Snowflakeutilizzo delle OAuth2 credenziali di un responsabile del servizio. Snowflake È possibile utilizzare questa federazione per connettersi ai cataloghiSnowflake Horizon. Snowflake Polaris Questo meccanismo di autenticazione consente a Data Catalog di accedere ai metadati di vari oggetti (come cataloghi, database e tabelle) del catalogo, in base ai privilegi associati al principale del servizio. Per garantire l'accesso agli oggetti giusti, è essenziale concedere al responsabile del servizio le autorizzazioni necessarie per leggere Snowflake i metadati di questi oggetti.

## Prerequisiti
<a name="catalog-federation-snowflake-prerequisites"></a>

Prima di creare un catalogo federato in Data Catalog governato da Lake Formation, assicurati di disporre delle seguenti autorizzazioni:

Il tuo principale IAM (utente o ruolo) deve disporre delle seguenti autorizzazioni:
+ **Autorizzazioni Lake Formation** —, `lakeformation:RegisterResource` `lakeformation:DescribeResource`
+ **AWS Glue autorizzazioni** —`glue:CreateConnection`,, `glue:CreateCatalog` `glue:GetConnection` `glue:PassConnection`
+ **Autorizzazioni di Secrets Manager** —, `secretsmanager:CreateSecret` `secretsmanager:GetSecretValue`
+ **Autorizzazioni IAM** —, `iam:CreateRole` `iam:AttachRolePolicy` `iam:PassRole`

Devi essere un amministratore del data lake di Lake Formation o avere l'`CREATE_CATALOG`autorizzazione per il Data Catalog.

## Crea un catalogo federato
<a name="catalog-federation-snowflake-create"></a>

### Utilizzo della console
<a name="catalog-federation-snowflake-console"></a>

1. Accedi alla console e apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Scegli la AWS regione preferita nella sezione della pagina in alto a destra.

1. Nel riquadro di navigazione a sinistra, seleziona Cataloghi.

1. Scegli **Crea catalogo** per aprire il **flusso di lavoro Crea catalogo**.

1. Nel passaggio **Scegli l'origine dei dati**, Snowflake seleziona una delle opzioni disponibili.

1. Nel passaggio **Imposta i dettagli del catalogo**, fornisci tre informazioni: dettagli del catalogo, dettagli di connessione e dettagli di registrazione.

1. Nel contenitore dei **dettagli del catalogo**, fornisci un nome univoco al tuo catalogo AWS Glue federato e inserisci il nome del Snowflake catalogo esistente.

1. Nel contenitore dei **dettagli delle connessioni**, puoi scegliere tra una connessione esistente a cui hai accesso o fornire la configurazione per creare un nuovo connettore.

1. Le nuove configurazioni di connessione includono:
   + Nome connessione: nome univoco dell'oggetto di AWS Glue connessione.
   + URL dell'istanza: l'URL dell'endpoint dell'Snowflakeaccount esistente.
   + Autenticazione: specifica la configurazione di autenticazione AWS Glue utilizzata per la connessione al server di catalogo remoto. AWS Glue supporta sia OAuth2 l'autenticazione personalizzata.
   + URL del token: specifica l'URL del provider di identità del catalogo remoto.
   + OAuth2 ID client: specifica l'ID client della OAuth2 credenziale associata al catalogo remoto.
   + Segreto: archivia e utilizza OAuth2 il segreto del client utilizzando Gestione dei segreti AWS o immettendo il valore segreto nella casella di testo. Quando inserisci il segreto manualmente nella console, AWS Glue crea il segreto per tuo conto.
   + Ambito dell'URL del token: specifica l' OAuth ambito per l'autenticazione.
   + Catalog Casing Filter: scegli se portare oggetti in lettere minuscole o maiuscole dal catalogo remoto a Data Catalog.

1. Crea un ruolo IAM che AWS Glue i responsabili del servizio Lake Formation possano utilizzare per accedere rispettivamente alle posizioni segrete in Gestione dei segreti AWS e Amazon S3 delle tabelle Iceberg remote. Seleziona il ruolo IAM nel menu a discesa di registrazione. Fai riferimento ai passaggi 2 e 3 nella seguente sezione CLI per i dettagli delle policy IAM.

1. Seleziona Test Connection per verificare se le proprietà della connessione e l'accesso ai ruoli IAM sono configurati correttamente.

1. Seleziona **Avanti** per rivedere le impostazioni.

1. Seleziona **Crea catalogo** nella pagina di revisione.

### Utilizzo della CLI
<a name="snowflake-federation-cli"></a>

1. <a name="snowflake-step-1"></a>**Crea un Gestione dei segreti AWS segreto**

   Il AWS Glue connettore supporta due tipi di autenticazione: **OAuth2****Personalizzata**. Quando si utilizza OAuth2 l'opzione, utilizzare Gestione dei segreti AWS per memorizzare il segreto del client del principale Snowflake servizio. Successivamente utilizzerai questo segreto durante la creazione della AWS Glue connessione. Per l'autenticazione personalizzata, utilizzare Gestione dei segreti AWS per archiviare e recuperare il token di accesso.

   Nell'esempio seguente, sostituisci `your-snowflake-secret``client_secret`, `region` con le tue informazioni.

   ```
   aws secretsmanager create-secret \
   --name your-snowflake-secret \
   --description "Snowflake secret" \
   --secret-string '{
   "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "client_secret"
   }' \
   --region region
   ```
**Nota**  
`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET`è una parola chiave riservata che viene AWS Glue utilizzata per fare riferimento a un valore segreto del client nel segreto. Usa la stessa parola chiave anche quando crei il segreto nella console di Lake Formation.

1. <a name="snowflake-step-2"></a>**Crea un ruolo IAM che dia accesso all'oggetto di AWS Glue connessione al segreto creato nel passaggio precedente**

   L'oggetto di AWS Glue connessione richiede l'accesso al Gestione dei segreti AWS segreto quando lo utilizzi Gestione dei segreti AWS per archiviare, recuperare e aggiornare il token OAuth segreto. L'oggetto di AWS Glue connessione richiede inoltre l'accesso per creare, descrivere e utilizzare le interfacce di rete Amazon VPC quando utilizzi un endpoint Amazon VPC per limitare la connettività al tuo account. Snowflake

   Crea una policy IAM e collegala a un ruolo IAM. Aggiungi AWS Glue il service principal alla policy di fiducia.

   Nell'esempio seguente `your-secrets-manager-ARN``your-vpc-id`, sostituisci e `your-subnet-id1` con le tue informazioni.  
**Example Politica IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret",
                   "secretsmanager:PutSecretValue"
               ],
               "Resource": [
                   "your-secrets-manager-ARN"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:DescribeNetworkInterfaces"
               ],
               "Resource": "*",
               "Condition": {
                   "ArnEquals": {
                       "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/your-vpc-id",
                       "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/your-subnet-id1"]
                   }
               }
           }
       ]
   }
   ```  
**Example Policy di attendibilità**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "glue.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

1. <a name="snowflake-step-3"></a>**Crea una policy IAM che fornisca a Lake Formation l'accesso in lettura alla posizione Amazon S3 del catalogo**

   In qualità di proprietario di un catalogo federato in Data Catalog, utilizzi Lake Formation per concedere ai tuoi team di dati l'accesso granulare alle tabelle, l'accesso granulare a livello di colonna, a livello di riga e a livello di cella e l'accesso basato su tag. Lake Formation utilizza un ruolo IAM che gli consente di accedere alle posizioni Amazon S3 sottostanti delle tabelle Iceberg remote. Questo accesso consente a Lake Formation di fornire credenziali di accesso mirate ai motori di analisi che interrogano tabelle remote.

   Crea una policy IAM e collegala a un ruolo IAM. Aggiungi il responsabile del servizio Lake Formation alla policy di trust del ruolo.

   Nell'esempio seguente, sostituisci `amzn-s3-demo-bucketN` e `your-kms-key` con le tue informazioni.  
**Example Politica IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                   "arn:aws:s3:::amzn-s3-demo-bucket2/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1",
                   "arn:aws:s3:::amzn-s3-demo-bucket2"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:Encrypt"
               ],
               "Resource": [
                   "your-kms-key"
               ]
           }
       ]
   }
   ```  
**Example Policy di attendibilità**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "",
           "Effect": "Allow",
           "Principal": {
               "Service": "lakeformation.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```
**Nota**  
Quando utilizzi la console Lake Formation per creare un catalogo federato, la console utilizza un singolo ruolo IAM con entrambe le policy collegate per completare la configurazione.

1. <a name="snowflake-step-4"></a>**Crea un oggetto di AWS Glue connessione**

   AWS Glue supporti per connettori OAuth2 e metodi di autenticazione personalizzati. L'oggetto di connessione Data Catalog supporta una `CATALOG_CASING_FILTER` configurazione che consente di inserire oggetti in lettere minuscole o maiuscole del catalogo remoto in Data Catalog.

   L'esempio seguente utilizza la configurazione OAuth2 dell'autenticazione per creare una connessione. AWS Glue Sostituisci `highlighted sections` con le tue informazioni.

   ```
   aws glue create-connection \
       --connection-input '{
   "Name": "your-glue-connection-to-snowflake-account",
   "ConnectionType": "SNOWFLAKEICEBERGRESTCATALOG",
   "ConnectionProperties": {
       "INSTANCE_URL": "your-snowflake-account-URL",
       "ROLE_ARN": "your-IAM-role-for-secrets-and-VPC-access",
       "CATALOG_CASING_FILTER": "LOWERCASE_ONLY"
   },
   "AuthenticationConfiguration": {
       "AuthenticationType": "OAUTH2",
       "OAuth2Properties": {
           "OAuth2GrantType": "CLIENT_CREDENTIALS",
           "TokenUrl": "your-internal-or-external-token-server-url",
           "OAuth2ClientApplication": {
               "UserManagedClientApplicationClientId": "our-client-id"
           },
           "TokenUrlParametersMap": {
               "scope": "all-apis"
           }
       },
       "SecretArn": "arn:aws:secretsmanager:your-aws-region:your-aws-account-id:secret:snowflake-secret"
   }
   }'
   ```

1. <a name="snowflake-step-5"></a>**Registra AWS Glue la connessione come risorsa Lake Formation**

   Utilizzando l'oggetto di AWS Glue connessione (creato nella fase 4) e il ruolo IAM (creato nella fase 3), è ora possibile registrare l'oggetto di AWS Glue connessione come risorsa gestita da Lake Formation.

   Sostituisci `your-glue-connector-arn` e `your-IAM-role-ARN-having-LF-access` con le tue informazioni.

   ```
   aws lakeformation register-resource \
       --resource-arn your-glue-connector-arn \
       --role-arn your-IAM-role-ARN-having-LF-access \
       --with-federation \
       --with-privileged-access
   ```

1. <a name="snowflake-step-6"></a>**Crea un catalogo federato in Data Catalog**

   Dopo aver creato un oggetto di AWS Glue connessione e averlo registrato con Lake Formation, puoi creare un catalogo federato nel Data Catalog:

   Fornisci al catalogo federato un nome univoco in`your-federated-catalog-name`, fai riferimento al catalogo in Snowflake at `catalog-name-in-Snowflake` e inserisci il nome della connessione creato in precedenza in. `your-glue-connection-name`

   ```
   aws glue create-catalog \
       --name your-federated-catalog-name \
       --catalog-input '{
       "FederatedCatalog": {
           "Identifier": catalog-name-in-Snowflake",
           "ConnectionName": your-glue-connection-name"
       },
       "CreateTableDefaultPermissions": [],
       "CreateDatabaseDefaultPermissions": []
   }'
   ```

## Considerazioni relative all'integrazione con Snowflake
<a name="snowflake-considerations"></a>
+ Quando inserisci risorse (come database e tabelle)Snowflake, Lake Formation non revoca automaticamente le autorizzazioni concesse su quella risorsa federata. Per rimuovere le autorizzazioni di accesso, è necessario revocare esplicitamente le autorizzazioni precedentemente concesse alla risorsa federata utilizzando Lake Formation.
+ Quando si monta un catalogo remoto con `CATALOG_CASING_FILTER='UPPERCASE_ONLY'` configurazione, i database e le tabelle con identificatori maiuscoli sono federati ma gli oggetti con identificatori minuscoli non lo sono.
+ È possibile riutilizzare la stessa connessione per creare più cataloghi federati. AWS Glue L'eliminazione di un catalogo non eliminerà la connessione associata. Per eliminare una connessione, utilizza il `aws glue delete-connection` comando AWS CLI e assicurati che tutti i cataloghi associati vengano prima eliminati.
+ I namespace annidati nel catalogo non sono supportati. Polaris In altre parole, la federazione dei cataloghi può accedere a Iceberg tabelle remote che seguono una notazione in 3 parti. `catalog.database.table`

# Federa a Databricks Unity Catalog
<a name="catalog-federation-databricks"></a>

AWS Glue Data Catalog si associa all'Databricksutilizzo delle OAuth2 credenziali di un responsabile del servizio. Databricks Questo meccanismo di autenticazione consente di accedere AWS Glue Data Catalog ai metadati di vari oggetti (come cataloghi, database e tabelle) in Databricks Unity Catalog base ai privilegi associati all'entità del servizio. Per garantire l'accesso agli oggetti giusti, è essenziale concedere al responsabile del servizio le autorizzazioni necessarie Databricks per leggere i metadati di questi oggetti.

Successivamente, la federazione dei cataloghi consente l'individuazione e l'interrogazione delle Iceberg tabelle nel catalogo Databricks Unity. Per leggere le tabelle delta, assicurati che Iceberg i metadati siano disponibili per l'utilizzo di queste tabelle. Uniform Segui il Databricks tutorial e la documentazione per creare il principale servizio e i privilegi associati nel tuo Databricks spazio di lavoro.

## Prerequisiti
<a name="catalog-federation-databricks-prerequisites"></a>

Prima di creare un catalogo federato in Data Catalog governato da Lake Formation, assicurati di disporre delle seguenti autorizzazioni:

Il tuo principale IAM (utente o ruolo) deve disporre delle seguenti autorizzazioni:
+ **Autorizzazioni Lake Formation** —, `lakeformation:RegisterResource` `lakeformation:DescribeResource`
+ **AWS Glue autorizzazioni** —`glue:CreateConnection`,, `glue:CreateCatalog` `glue:GetConnection` `glue:PassConnection`
+ **Autorizzazioni di Secrets Manager** —, `secretsmanager:CreateSecret` `secretsmanager:GetSecretValue`
+ **Autorizzazioni IAM**:, `iam:CreateRole` `iam:AttachRolePolicy` `iam:PassRole`

Devi essere un amministratore del data lake di Lake Formation o avere l'`CREATE_CATALOG`autorizzazione per il Data Catalog

## Crea un catalogo federato
<a name="catalog-federation-databricks-create"></a>

### Utilizzo della console
<a name="catalog-federation-databricks-console"></a>

1. Accedi alla console e apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Scegli la AWS regione preferita nella sezione della pagina in alto a destra.

1. Nel riquadro di navigazione a sinistra, seleziona Cataloghi.

1. Scegli **Crea catalogo** per aprire il **flusso di lavoro Crea catalogo**.

1. Nel passaggio **Scegli l'origine dei dati**, Databricks seleziona una delle opzioni disponibili.

1. Nel passaggio **Imposta i dettagli del catalogo**, fornisci tre informazioni: dettagli del catalogo, dettagli di connessione e dettagli di registrazione.

1. Nel contenitore dei **dettagli del catalogo**, fornisci un nome univoco al tuo catalogo AWS Glue federato e inserisci il nome del Databricks catalogo esistente.

1. Nel contenitore dei **dettagli delle connessioni**, puoi scegliere tra una connessione esistente a cui hai accesso o fornire la configurazione per creare un nuovo connettore.

1. Le nuove configurazioni di connessione includono:
   + Nome connessione: nome univoco dell'oggetto di AWS Glue connessione.
   + URL dell'area di lavoro: l'URL dell'endpoint dell'area di lavoro esistenteDatabricks.
   + Autenticazione: specifica la configurazione di autenticazione AWS Glue utilizzata per la connessione al server di catalogo remoto. AWS Glue supporta sia OAuth2 l'autenticazione personalizzata.
   + URL del token: specifica l'URL del provider di identità del catalogo remoto.
   + OAuth2 ID client: specifica l'ID client della OAuth2 credenziale associata al catalogo remoto.
   + Segreto: archivia e utilizza OAuth2 il segreto del client utilizzando Gestione dei segreti AWS o immettendo il valore segreto nella casella di testo. Quando inserisci il segreto manualmente nella console, AWS Glue crea il segreto per tuo conto.
   + Ambito dell'URL del token: specifica l' OAuth ambito per l'autenticazione.

1. Crea un ruolo IAM che AWS Glue i responsabili del servizio Lake Formation possano utilizzare per accedere rispettivamente alle posizioni segrete in e Amazon S3 delle tabelle Iceberg remote. Seleziona il ruolo IAM nel menu a discesa di registrazione. Fai riferimento ai passaggi 2 e 3 nella seguente sezione CLI per i dettagli delle policy IAM.

1. Seleziona Test Connection per verificare se le proprietà della connessione e l'accesso ai ruoli IAM sono configurati correttamente. La funzionalità di test di connessione non è disponibile quando ci si connette Databricks tramite Amazon VPC.

1. Seleziona **Avanti** per rivedere le impostazioni.

1. Seleziona **Crea catalogo** nella pagina di revisione.

### Utilizzo della CLI
<a name="catalog-federation-databricks-cli"></a>

1. <a name="databricks-step-1"></a>**Crea un Gestione dei segreti AWS segreto**

   Il AWS Glue connettore supporta due tipi di autenticazione: **OAuth2****Personalizzata**. Quando si utilizza OAuth2 l'opzione, utilizzare Gestione dei segreti AWS per memorizzare il segreto del client del principale Databricks servizio. Successivamente utilizzerai questo segreto durante la creazione della AWS Glue connessione. Per l'autenticazione personalizzata, utilizzare Gestione dei segreti AWS per archiviare e recuperare il token di accesso.

   Nell'esempio seguente, sostituisci `<databricks-secret>``<client_secret>`, `<region>` con le tue informazioni.

   ```
   aws secretsmanager create-secret \
   --name <databricks-secret> \
   --description "Databricks secret" \
   --secret-string '{
   "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "<client_secret>"
   }' \
   --region <region>
   ```
**Nota**  
`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET`è una parola chiave riservata che viene AWS Glue utilizzata per fare riferimento a un valore segreto del client nel segreto. Usa la stessa parola chiave anche quando crei il segreto nella console di Lake Formation. 

1. <a name="databricks-step-2"></a>**Crea un ruolo IAM che dia accesso all'oggetto di AWS Glue connessione al segreto creato nel passaggio precedente**

   L'oggetto di AWS Glue connessione richiede l'accesso al Gestione dei segreti AWS segreto quando lo utilizzi Gestione dei segreti AWS per archiviare, recuperare e aggiornare il token OAuth segreto. L'oggetto di AWS Glue connessione richiede inoltre l'accesso per creare, descrivere e utilizzare le interfacce di rete Amazon VPC quando utilizzi un endpoint Amazon VPC per limitare la connettività al tuo spazio di lavoro. Databricks

   Crea una policy IAM e collegala a un ruolo IAM. Aggiungi AWS Glue il service principal alla policy di fiducia.

   Nell'esempio seguente `<your-secrets-manager-ARN>``<your-vpc-id>`, sostituisci e `<your-subnet-id1>` con le tue informazioni.  
**Example Politica IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret",
                   "secretsmanager:PutSecretValue"
               ],
               "Resource": [
                   "<your-secrets-manager-ARN>"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:DescribeNetworkInterfaces"
               ],
               "Resource": "*",
               "Condition": {
                   "ArnEquals": {
                       "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/<your-vpc-id>",
                       "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/<your-subnet-id1>"]
                   }
               }
           }
       ]
   }
   ```  
**Example Policy di attendibilità**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "glue.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

1. <a name="databricks-step-3"></a>**Crea una policy IAM che fornisca a Lake Formation l'accesso in lettura alla posizione Amazon S3 del catalogo**

   In qualità di proprietario di un catalogo federato in Data Catalog, utilizzi Lake Formation per concedere ai tuoi team di dati l'accesso granulare alle tabelle, l'accesso granulare a livello di colonna, a livello di riga e a livello di cella e l'accesso basato su tag. Lake Formation utilizza un ruolo IAM che gli consente di accedere alle posizioni Amazon S3 sottostanti delle tabelle Iceberg remote. Questo accesso consente a Lake Formation di fornire credenziali di accesso mirate ai motori di analisi che interrogano tabelle remote.

   Crea una policy IAM e collegala a un ruolo IAM. Aggiungi il responsabile del servizio Lake Formation alla policy di trust dei ruoli IAM.

   Nell'esempio seguente, sostituisci `<your-s3-bucket-N>` e `<your-kms-key>` con le tue informazioni.  
**Example Politica IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::<your-s3-bucket-1>/*",
                   "arn:aws:s3:::<your-s3-bucket-2>/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::<your-s3-bucket-1>",
                   "arn:aws:s3:::<your-s3-bucket-2>"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:Encrypt"
               ],
               "Resource": [
                   "<your-kms-key>"
               ]
           }
       ]
   }
   ```  
**Example Policy di attendibilità**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "",
           "Effect": "Allow",
           "Principal": {
               "Service": "lakeformation.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```
**Nota**  
Quando utilizzi la console Lake Formation per creare un catalogo federato, la console utilizza un singolo ruolo IAM con entrambe le policy collegate per completare la configurazione.

1. <a name="databricks-step-4"></a>**Crea un oggetto di AWS Glue connessione**

   Data Catalog supporta ConnectionType`DATABRICKSICEBERGRESTCATALOG`: per connettere Data Catalog a. Databricks Questo AWS Glue connettore supporta metodi OAuth2 di autenticazione personalizzati.

   L'esempio seguente utilizza la configurazione OAuth2 dell'autenticazione per creare una AWS Glue connessione. Sostituisci `highlighed sections` con le tue informazioni.

   ```
   aws glue create-connection \
       --connection-input '{
   "Name": "<your-glue-connection-to-databricks-unity-account>",
   "ConnectionType": "DATABRICKSICEBERGRESTCATALOG",
   "ConnectionProperties": {
       "INSTANCE_URL": "<your-databricks-workspace-catalog-URL>",
       "ROLE_ARN": "<your-IAM-role-for-secrets-and-VPC-access>"
   },
   "AuthenticationConfiguration": {
       "AuthenticationType": "OAUTH2",
       "OAuth2Properties": {
           "OAuth2GrantType": "CLIENT_CREDENTIALS",
           "TokenUrl": "<your-internal-or-external-token-server-url>",
           "OAuth2ClientApplication": {
               "UserManagedClientApplicationClientId": "<your-client-id>"
           },
           "TokenUrlParametersMap": {
               "scope": "all-apis"
           }
       },
       "SecretArn": "arn:aws:secretsmanager:<aws-region>:<your-aws-account-id>:secret:<databricks-secret>"
   }
   }'
   ```

1. <a name="databricks-step-5"></a>**Registra AWS Glue la connessione come risorsa Lake Formation**

   Utilizzando l'oggetto di AWS Glue connessione (creato nella fase 4) e il ruolo IAM (creato nella fase 3), ora è possibile registrare l'oggetto di AWS Glue connessione come risorsa gestita da Lake Formation.

   Sostituisci `<your-glue-connector-arn>` e `<your-IAM-role-ARN-having-LF-access>` con le tue informazioni.

   ```
   aws lakeformation register-resource \
       --resource-arn <your-glue-connector-arn> \
       --role-arn <your-IAM-role-ARN-having-LF-access> \
       --with-federation \
       --with-privileged-access
   ```

1. <a name="databricks-step-6"></a>**Crea un catalogo federato in Data Catalog**

   Dopo aver creato un oggetto di AWS Glue connessione e averlo registrato con Lake Formation, puoi creare un catalogo federato nel Data Catalog:

   Fornisci al catalogo federato un nome univoco in`<your-federated-catalog-name>`, fai riferimento al catalogo in Databricks at `"<catalog-name-in-Databricks>` e inserisci il nome della connessione creato in precedenza in. `"<your-glue-connection-name>`

   ```
   aws glue create-catalog \
       --name <your-federated-catalog-name> \
       --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "<catalog-name-in-Databricks>",
           "ConnectionName": "<your-glue-connection-name>"
       },
       "CreateTableDefaultPermissions": [],
       "CreateDatabaseDefaultPermissions": []
   }'
   ```

## Considerazioni relative all'integrazione con Databricks
<a name="databricks-considerations"></a>
+ Quando lasci cadere risorse (come database e tabelle) inDatabricks, Lake Formation non revoca automaticamente le autorizzazioni concesse su quella risorsa federata. Per rimuovere le autorizzazioni di accesso, è necessario revocare esplicitamente le autorizzazioni precedentemente concesse alla risorsa federata utilizzando Lake Formation.
+ Puoi interrogare le tabelle Iceberg archiviate in Amazon S3 utilizzando questa integrazione. Quando utilizzi qualsiasi altro formato di tabella o storage di oggetti, puoi federare i metadati nei cataloghi remoti AWS Glue ed elencarli nei relativi database e tabelle, ma operazioni di query come quelle che eseguono la query `SELECT ColumnFoo from TableBar` falliranno e genereranno l'errore «Failed to read table». Apache Iceberg La posizione di archiviazione degli oggetti non è supportata. '
+ È possibile riutilizzare la stessa AWS Glue connessione per creare più cataloghi federati. L'eliminazione di un catalogo non eliminerà l'oggetto di connessione associato. Per eliminare un oggetto di connessione, utilizza il `aws glue delete-connection` comando AWS CLI e assicurati che tutti i cataloghi associati vengano prima eliminati.

# Inserimento dei dati di Amazon Redshift nel AWS Glue Data Catalog
<a name="managing-namespaces-datacatalog"></a>

Puoi gestire i dati analitici nei data warehouse Amazon Redshift in (Data Catalog) e unificare AWS Glue Data Catalog i data lake Amazon S3 e i data warehouse Amazon Redshift. Amazon Redshift è un servizio di data warehouse completamente gestito su scala di petabyte nel cloud. AWS Un data warehouse Amazon Redshift è costituito da un insieme di risorse di calcolo denominate *nodi*, strutturate in un gruppo denominato *cluster*. Ciascun cluster esegue un motore Amazon Redshift e contiene uno o più database.

In Amazon Redshift, puoi creare cluster e namespace serverless con provisioning di Amazon Redshift e registrarli nel Data Catalog. In questo modo, puoi unificare i dati nello storage gestito di Amazon Redshift (RMS) e nei bucket Amazon S3 e accedere ai dati da motori di analisi compatibili con Apache Iceberg.

Registrando namespace e cluster, puoi fornire l'accesso ai dati senza la necessità di copiarli o spostarli. Per ulteriori informazioni sulla registrazione di cluster e namespace in Amazon Redshift, consulta [Registrazione di cluster e namespace Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/iceberg-integration-register.html) su. AWS Glue Data Catalog

 In Amazon Redshift, puoi eseguire la condivisione dei dati tramite datashare o registrando namespace e cluster con Data Catalog. Con le datashare, che operano a livello di singolo oggetto del database, devi abilitare la condivisione per ogni tabella o vista. Al contrario, la pubblicazione dei namespace funziona a livello di cluster o namespace. Quando si registra un cluster o uno spazio dei nomi con Data Catalog, tutti i database e le tabelle al suo interno vengono condivisi automaticamente, senza che sia necessario configurare la condivisione per i singoli oggetti. 

Nel Data Catalog, puoi creare un catalogo federato per ogni namespace o cluster. Un catalogo viene definito catalogo *federato quando punta a un'entità esterna al Data Catalog*. Le tabelle e le viste nello spazio dei nomi Amazon Redshift sono elencate come singole tabelle nel Data Catalog. Puoi condividere database e tabelle nel catalogo federato con i principali IAM e gli utenti SAML selezionati all'interno dello stesso account o in un altro account con Lake Formation. Puoi anche includere espressioni di filtro per righe e colonne per limitare l'accesso a determinati dati. Per ulteriori informazioni, consulta [Filtraggio dei dati e sicurezza a livello di cella in Lake Formation](data-filtering.md). 

Il Data Catalog supporta una gerarchia di metadati a tre livelli che comprende cataloghi, database e tabelle (e viste). Quando registri un namespace con Data Catalog, la gerarchia dei dati di Amazon Redshift viene mappata sulla gerarchia a 3 livelli del Data Catalog come segue:
+ Lo spazio dei nomi Amazon Redshift diventa un catalogo multilivello nel Data Catalog.
+ Il database Amazon Redshift associato è registrato come catalogo nel Data Catalog.
+ Lo schema Amazon Redshift diventa un database nel Data Catalog.
+ La tabella Amazon Redshift diventa una tabella nel Data Catalog.

![\[Mostra la mappatura a livello di catalogo tra lo spazio dei nomi Amazon Redshift e il Data Catalog.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/rs-catalog-mapping.png)


Con questa gerarchia di metadati a tre livelli, puoi accedere alle tabelle di Amazon Redshift utilizzando la notazione in 3 parti: «catalog1/catalog2.database.table» nel Data Catalog. Inoltre, i team addetti ai dati possono mantenere la stessa organizzazione utilizzata da Amazon Redshift per organizzare le tabelle all'interno dell'account Data Catalog. 

In Lake Formation, puoi gestire in modo sicuro i dati di Amazon Redshift utilizzando un controllo granulare degli accessi per le risorse del Data Catalog. Con questa integrazione, puoi gestire, proteggere e interrogare i dati analitici da un unico catalogo con un meccanismo di controllo degli accessi comune.

Per le limitazioni, consulta [Limitazioni per l'inserimento dei dati del data warehouse di Amazon Redshift nel AWS Glue Data Catalog](notes-ns-catalog.md).

**Topics**
+ [Vantaggi principali](#namespace-publish-benefits)
+ [Ruoli e responsabilità](#namespace-roles-responsibilities)
+ [Prerequisiti per la gestione dei namespace di Amazon Redshift nel AWS Glue Data Catalog](redshift-ns-prereqs.md)
+ [Creazione di cataloghi federati Amazon Redshift](create-ns-catalog.md)
+ [Visualizzazione degli oggetti del catalogo](view-ns-catalog-resources.md)
+ [Aggiornamento di un catalogo federato](update-fed-catalog-steps.md)
+ [Accesso a un catalogo federato condiviso](catalog-resource-link.md)
+ [Eliminazione di un catalogo federato](delete-rs-fed-catalog.md)
+ [Interrogazione di cataloghi federati](query-redshift-fed-catalog.md)
+ [Risorse aggiuntive](additional-resources-byod.md)

## Vantaggi principali
<a name="namespace-publish-benefits"></a>

 La registrazione di cluster e namespace Amazon Redshift con e l' AWS Glue Data Catalog unificazione dei dati tra i data lake Amazon S3 e i data warehouse Amazon Redshift offre i seguenti vantaggi: 
+ **Esperienza di interrogazione uniforme: interroga i dati e i dati gestiti di Amazon Redshift nei bucket Amazon S3 utilizzando qualsiasi motore di query compatibile con Apache Iceberg, come Amazon EMR Serverless e Amazon Athena, senza dover spostare o copiare** i dati. 
+ **Accesso coerente ai dati tra i servizi**: non è necessario aggiornare i nomi di database e tabelle nelle pipeline di dati quando si accede alle stesse fonti di dati federate da diversi servizi di AWS analisi, poiché le fonti di dati sono registrate nel Catalogo dati. 
+ **Controllo granulare degli accessi**: puoi applicare le autorizzazioni di Lake Formation per gestire l'accesso alle fonti di dati federate utilizzando autorizzazioni di controllo degli accessi granulari. 

## Ruoli e responsabilità
<a name="namespace-roles-responsibilities"></a>


|  |  | 
| --- |--- |
| Ruolo | Responsabilità | 
|  Produttore e amministratore del cluster Amazon Redshift  |  Registra il cluster o lo spazio dei nomi con il Data Catalog.  | 
| Amministratore del data lake Lake Formation  |  Accetta l'invito al cluster o al namespace, crea cataloghi federati e concede l'accesso ai cataloghi federati ad altri principali.  | 
| Amministratore di sola lettura di Lake Formation | Trova il catalogo federato, interroga le tabelle di Amazon Redshift nel catalogo federato. | 
| Ruolo di trasferimento dei dati  |  Amazon Redshift si assume per tuo conto il trasferimento di dati da e verso il bucket Amazon S3.  | 

Di seguito sono riportati i passaggi di alto livello per fornire agli utenti l'accesso a uno spazio dei nomi Amazon Redshift:

1.  In Amazon Redshift, l'amministratore del cluster produttore registra un cluster o un namespace nel Data Catalog. 

1. L'amministratore del data lake accetta l'invito allo spazio dei nomi dall'amministratore del cluster di produttori di Amazon Redshift e crea un catalogo federato nel Data Catalog.

   Dopo aver completato questo passaggio, puoi gestire il catalogo dei namespace di Amazon Redshift all'interno del Data Catalog. 

1. Concedi le autorizzazioni agli utenti su cataloghi, database e tabelle. Puoi condividere l'intero catalogo dei namespace o un sottoinsieme di tabelle con gli utenti dello stesso account o di un altro account. 

# Prerequisiti per la gestione dei namespace di Amazon Redshift nel AWS Glue Data Catalog
<a name="redshift-ns-prereqs"></a>

1. Crea un amministratore del data lake: crea un ruolo IAM autorizzato ad accettare l'invito al namespace e crea AWS Glue Data Catalog gli oggetti (cataloghi, database, tabelle/viste) e concedi le autorizzazioni Lake Formation ad altri utenti.

   Per step-by-step istruzioni sulla creazione di un amministratore di data lake, consulta. [Crea un amministratore del data lake](initial-lf-config.md#create-data-lake-admin) 

1. Aggiorna le autorizzazioni di amministratore del data lake.

    Oltre alle autorizzazioni di amministratore del data lake, l'amministratore del data lake richiede le seguenti autorizzazioni per accettare un invito allo spazio dei nomi Amazon Redshift in Lake Formation, creare o aggiornare le risorse del Data Catalog e abilitare l'accesso al data lake:

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

****  

   ```
       {
       "Version":"2012-10-17",		 	 	 
       "Id": "glue-enable-datalake-access",
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "redshift:AssociateDataShareConsumer",
                   "redshift:DescribeDataSharesForConsumer",
                   "redshift:DescribeDataShares",
                   "redshift-serverless:CreateNamespace",
                   "redshift-serverless:CreateWorkgroup",
                   "redshift-serverless:DeleteNamespace",
                   "redshift-serverless:DeleteWorkgroup",
                   "ec2:DescribeAccountAttributes",
                   "ec2:DescribeSubnets",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeAvailabilityZones",
                   "s3:createBucket",
                   "s3:deleteBucket",
                   "s3:putBucketPolicy",
                   "s3:putEncryptionConfiguration",
                   "s3:putLifecycleConfiguration",
                   "s3:putBucketVersioning",
                   "iam:CreateRole"
               ],
               "Resource": "*"
           },
           {
               "Action": [
                   "iam:PassRole"
               ],
               "Effect": "Allow",
               "Resource": "arn:aws:iam::*:role/data transfer role name",
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": [
                           "glue.amazonaws.com"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Se il ruolo IAM utilizzato per creare cataloghi federati non è un amministratore di data lake, devi concedere al ruolo l'autorizzazione. `Create catalog`

**Per creare creatori di cataloghi**

   1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

   1. Scegli **Ruoli e attività amministrative** in **Amministrazione**.

   1. Scegliere **Concedi**.

   1. Nella schermata **Concedi le autorizzazioni**, scegli un utente o un ruolo IAM.

   1. Seleziona **Crea autorizzazione al catalogo**.

   1. Facoltativamente, puoi anche concedere l'autorizzazione alla **creazione** di catalogo. L'autorizzazione concessa consente al creatore del catalogo di concedere l'`Create catalog`autorizzazione ad altri responsabili.

   1. Scegliere **Concedi**.

   AWS CLI esempio di concessione delle autorizzazioni per creare un catalogo federato. 

   ```
   aws lakeformation grant-permissions \
   --cli-input-json \
   '{
       "Principal": {
        "DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/Admin"
       },
       "Resource": {
           "Catalog": {
           }
       },
       "Permissions": [
           "CREATE_CATALOG",
           "DESCRIBE"
       ]
   }'
   ```

1. Crea un ruolo di amministratore di sola lettura per scoprire i cataloghi federati di Amazon Redshift nel Data Catalog da Amazon Redshift Query Editor v2.

   Per interrogare le tabelle Amazon Redshift nel catalogo federato da Amazon Redshift Query Editor v2, assicurati che la policy del ruolo di amministratore di sola lettura contenga l'ARN per il ruolo collegato al servizio Amazon Redshift-. `AWSServiceRoleForRedshift` 

   ```
    aws lakeformation put-data-lake-settings 
           --region us-east-1 \
           --data-lake-settings \
    '{
      "DataLakeAdmins": [{"DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/Admin"}],
      "ReadOnlyAdmins":[{"DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift"}],
      "CreateDatabaseDefaultPermissions":[],
      "CreateTableDefaultPermissions":[],
      "Parameters":{"CROSS_ACCOUNT_VERSION":"4","SET_CONTEXT":"TRUE"}
     }'
   ```

1.  Crea un ruolo di trasferimento dati che Amazon Redshift può assumere per tuo conto per trasferire dati da e verso il bucket Amazon S3. 

   Quando abiliti l'accesso al data lake per motori di query compatibili con Apache Iceberg come Athena, Amazon EMR su Amazon EC2 per accedere alle risorse Amazon Redshift nel Data Catalog, devi creare un ruolo IAM con le autorizzazioni necessarie per eseguire il trasferimento di dati da e verso il bucket Amazon S3. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "glue-enable-datalake-access",
       "Statement": [{
         "Sid": "DataTransferRolePolicy",
           "Effect": "Allow",
           "Action": [ "glue:GetCatalog",
                       "glue:GetDatabase",
                       "kms:GenerateDataKey",
                       "kms:Decrypt"],
           "Resource": "*"
       }
       ]
   }
   ```

------

1.  Aggiungi la seguente policy di fiducia al ruolo di trasferimento dati per AWS Glue i servizi Amazon Redshift per assumere il ruolo di trasferimento dati da e verso il bucket Amazon S3. 

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

****  

   ```
             {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
           "Service": [
           "redshift.amazonaws.com",
           "glue.amazonaws.com"
           ]
       },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

------

1.  Aggiungi la seguente policy chiave alla chiave se utilizzi una AWS KMS chiave gestita dal cliente per crittografare i dati nel cluster/namespace di Amazon Redshift. Sostituisci il numero di account con un numero di AWS account valido e specifica il nome del ruolo di trasferimento dati. Per impostazione predefinita, i dati nel cluster Amazon Redshift sono crittografati utilizzando una chiave KMS. Lake Formation offre un’opzione per creare una chiave KMS personalizzata per la crittografia. Se utilizzi una chiave gestita dal cliente, devi aggiungere politiche chiave specifiche alla chiave. 

   Per ulteriori informazioni relative alla gestione delle autorizzazioni di una chiave gestita dal cliente, consulta [Customer managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "auto-redshift-3",
       "Statement": [{
               "Sid": "RedshiftAllowAccessPolicy",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "*"
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:CreateGrant",
                   "kms:DescribeKey"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "kms:CallerAccount": "111122223333",
                       "kms:ViaService": "redshift.us-east-1.amazonaws.com"
                   }
               }
           },
           {
               "Sid": "RedshiftServerlessAllowAccessPolicy",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "*"
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:CreateGrant",
                   "kms:DescribeKey"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "kms:CallerAccount": "111122223333",
                       "kms:ViaService": "redshift-serverless.us-east-1.amazonaws.com"
                   }
               }
           },
           {
               "Sid": "DirectMetadataAccess",
               "Effect": "Allow",
               "Principal": {
               "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": [
                   "kms:Describe*",
                   "kms:Get*",
                   "kms:List*",
                   "kms:RevokeGrant"
               ],
               "Resource": "*"
           },
           {
               "Sid": "GenerateDataKeyDecryptDataTransferRole",
               "Effect": "Allow",
               "Principal": {
               "AWS": "arn:aws:iam::111122223333:role/data-transfer-role-name"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                   "kms:ViaService": "s3.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

# Creazione di cataloghi federati Amazon Redshift
<a name="create-ns-catalog"></a>

Questo argomento descrive i passaggi da seguire per accettare un invito a un cluster o a un namespace, creare un catalogo federato a più livelli e concedere autorizzazioni ad altri principali. Puoi completare queste attività utilizzando la console Lake Formation, il AWS Command Line Interface (AWS CLI) o APIs/SDKs. Gli esempi in questo argomento mostrano il cluster/namespace del produttore, il Data Catalog e il data consumer nello stesso account.

Per ulteriori informazioni sulle funzionalità cross-account di Lake Formation, consulta[Condivisione dei dati tra account in Lake Formation](cross-account-permissions.md).

**Per gestire uno spazio dei nomi Amazon Redshift nel Data Catalog**

1. Rivedi un invito al namespace e accettalo.

------
#### [ Console ]

   1. Accedi alla console di Lake Formation come amministratore del data lake all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/). Vai alla pagina **Cataloghi** in **Data Catalog**. 

   1. Controlla l'invito al namespace a cui sei autorizzato ad accedere. La colonna **Status** indica il tuo attuale stato di partecipazione al namespace. Lo stato **Non accettato** indica che sei stato aggiunto al namespace, ma non l'hai ancora accettato o hai rifiutato l'invito.   
![\[La pagina dei cataloghi con gli inviti in sospeso.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/catalog-details.png)

   1. **Per rispondere a un invito al namespace o al cluster, seleziona il nome dell'invito e scegli Rivedi l'invito.** In **Accetta o rifiuta l'invito, controlla** i dettagli dell'invito. Scegli **Accetta** per accettare l'invito o **Rifiuta per rifiutarlo**. Non avrai accesso al namespace se rifiuti l'invito.

------
#### [ AWS CLI ]

   Gli esempi seguenti mostrano come visualizzare, accettare e registrare l'invito. Sostituisci l' Account AWS ID con un Account AWS ID valido. Sostituisci `data-share-arn` con l'effettivo Amazon Resource Name (ARN) che fa riferimento allo spazio dei nomi.

   1. Visualizza un invito in sospeso.

      ```
      aws redshift describe-data-shares \
       --data-share-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace' \
      ```

   1. Accetta un invito.

      ```
       aws redshift associate-data-share-consumer \
       --data-share-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace' \
       --consumer-arn 'arn:aws:glue:us-east-1:123456789012:catalog'
      ```

   1. Registra il cluster o lo spazio dei nomi nell'account Lake Formation. Utilizza l'operazione [RegisterResource](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_RegisterResource.html)API per registrare il datashare in Lake Formation. `DataShareArn`è il parametro di input per. `ResourceArn`
**Nota**  
Si tratta di un passaggio obbligatorio.

      ```
      aws lakeformation register-resource \
       --resource-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace'
      ```

------

1. Crea un catalogo federato.

    Dopo aver accettato un invito, devi creare un catalogo federato nel Data Catalog che mappi gli oggetti nello spazio dei nomi Amazon Redshift al Data Catalog. Devi essere un amministratore del data lake o un utente o un ruolo che dispone delle autorizzazioni necessarie per creare un catalogo. 

------
#### [ Console ]

   1. Dopo aver accettato l'**invito** al namespace, viene visualizzata la pagina dei **dettagli del catalogo Set**. 

   1. Nella pagina dei **dettagli del catalogo Set**, inserisci un nome univoco per il catalogo. Usa lettere minuscole per i nomi dei cataloghi. I nomi dei cataloghi devono avere una lunghezza inferiore o uguale a 255 caratteri. Utilizzate questo identificatore per mappare lo spazio dei nomi internamente nella gerarchia dei metadati (CatalogID.DBName.Schema.Table). 

   1.  Immettete una descrizione per il catalogo. La descrizione deve avere una lunghezza inferiore o uguale a 2048 caratteri. 

   1. Successivamente, seleziona la casella di controllo **Accedi a questo catalogo dai motori compatibili con Iceberg** per abilitare l'accesso alle risorse di Amazon Redshift utilizzando motori analitici compatibili con Apache Iceberg come Athena e Apache Spark su Amazon EMR.

      Non è necessario abilitare l’accesso al data lake per accedere ai cataloghi federati tramite Amazon Redshift.  
![\[La pagina di creazione del catalogo con le opzioni di abilitazione dell'accesso.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/catalog-access.png)

   1. Per consentire a questi motori di query di leggere e scrivere nei namespace di Amazon Redshift, crea un cluster Amazon Redshift AWS Glue gestito con le risorse di calcolo e storage necessarie per eseguire operazioni di lettura e scrittura senza influire sui carichi di lavoro del data warehouse di Amazon Redshift.

      È inoltre necessario fornire a un ruolo IAM le autorizzazioni necessarie per trasferire dati da e verso il bucket Amazon S3. 

   1. Per impostazione predefinita, i dati nel cluster Amazon Redshift sono crittografati utilizzando una chiave AWS gestita. Lake Formation offre un’opzione per creare una chiave KMS personalizzata per la crittografia. Se utilizzi una chiave gestita dal cliente, devi aggiungere politiche chiave specifiche alla chiave. 

       Scegli **Personalizza le impostazioni di crittografia** se utilizzi una chiave gestita dal cliente per crittografare i dati nel cluster/namespace di Amazon Redshift. Per utilizzare una chiave personalizzata, è necessario aggiungere una policy della chiave gestita personalizzata alla propria chiave KMS. Per ulteriori informazioni, consulta [Prerequisiti per la gestione dei namespace di Amazon Redshift nel AWS Glue Data Catalog](redshift-ns-prereqs.md).

------
#### [ AWS CLI ]

    Utilizza il seguente codice di esempio per creare un catalogo con i dati di Amazon Redshift pubblicati nel Data Catalog utilizzando il. AWS CLI

   ```
   aws glue create-catalog 
   --cli-input-json \
   '{
       "Name": "nscatalog", 
       "CatalogInput": {
           "Description": "Redshift federated catalog",
           "CreateDatabaseDefaultPermissions" : [],
           "CreateTableDefaultPermissions": [],
           "FederatedCatalog": {
               "Identifier": "arn:aws:redshift:us-east-1:123456789012:datashare:11524d7f-f56d-45fe-83f7-d7bb0a4d6d71/ds_internal_namespace",
               "ConnectionName": "aws:redshift"
           },
           "CatalogProperties": {
             "DataLakeAccessProperties" : {
               "DataLakeAccess" : true,
               "DataTransferRole" : "arn:aws:iam::123456789012:role/DataTransferRole"
            } 
          }
       }
   }'
   ```

------

1. Concedi le autorizzazioni agli utenti del tuo account o di account esterni.

------
#### [ Console di gestione AWS ]

   1. Scegli **Avanti** per concedere le autorizzazioni ad altri utenti su cataloghi, database e tabelle condivisi. 

   1.  Nella schermata **Aggiungi autorizzazioni**, scegli i principali e i tipi di autorizzazioni da concedere.   
![\[La pagina delle autorizzazioni del catalogo con le opzioni principali di tipo e concessione.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/catalog-permissions.png)

      1.  Nella sezione **Principali**, scegli un tipo di principale e quindi specifica i principali per concedere le autorizzazioni. 
         + **Utenti e ruoli IAM**: scegli uno o più utenti o ruoli dall’elenco degli utenti e dei ruoli IAM.
         + **Utenti e gruppi SAML**: per SAML e Amazon Quick utenti e gruppi, inserisci uno o più Amazon Resource Names (ARNs) per utenti o gruppi federati tramite SAML o per utenti o gruppi ARNs Amazon Quick. Premi **Invio** dopo ogni ARN.

           Per informazioni su come costruire i comandi grant and ARNs revoke. AWS CLI AWS CLI 
         + **Account esterni**: per AWS, AWS organizzazione o responsabile IAM, inserisci uno o più AWS account IDs, organizzazione IDs IDs, unità organizzativa o ARN validi per l'utente o il ruolo IAM. Premi Invio dopo ogni ID. Un ID dell'organizzazione è composto da «o-» seguito da 10-32 lettere o cifre minuscole. L'ID di un'unità organizzativa inizia con «ou-» seguito da 4—32 lettere o cifre minuscole (l'ID della radice che contiene l'unità organizzativa). Questa stringa è seguita da un secondo trattino «-» e da 8 a 32 lettere o cifre minuscole aggiuntive. 

      1.  Nella sezione **Autorizzazioni**, seleziona le autorizzazioni e le autorizzazioni concedibili.

         In **Autorizzazioni del catalogo**, seleziona una o più autorizzazioni da concedere. In Autorizzazioni **concedibili, seleziona le autorizzazioni che il destinatario della sovvenzione** può concedere ad altri responsabili del proprio account. AWS Questa opzione non è supportata quando si concedono autorizzazioni a un principale IAM da un account esterno. 

         Scegli **Super user** per concedere all'utente autorizzazioni illimitate per le risorse (database, tabelle, viste) all'interno del catalogo.

   1. Scegliere **Aggiungi**.

------
#### [ AWS CLI ]

   Utilizzate gli esempi seguenti per concedere le autorizzazioni per cataloghi, database e tabelle utilizzando: AWS CLI
   + L'esempio seguente mostra come concedere le autorizzazioni per il catalogo federato.

     ```
     aws lakeformation grant-permissions
      --cli-input-cli-json \
        '{
              "Principal": {
                   "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin"
               },
               "Resource": {
                    "Catalog": {
                          "Id": "123456789012:nscatalog"
                     }
                 },
                 "Permissions": [
                        "DESCRIBE","CREATE_CATALOG"
                  ],
                 "PermissionsWithGrantOption": [
                  ]
         }'
     ```
   + Utilizzate l'esempio seguente per concedere le autorizzazioni su un database.

     ```
     aws lakeformation grant-permissions \
       --cli-input-json \
               '{
                   "Principal": {
                       "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin"
                   },
                   "Resource": {
                       "Database": {
                           "CatalogId": "123456789012:nscatalog/dev",
                           "Name": "public"
                       }
                   },
                   "Permissions": [
                       "ALL"
                   ]
               }'
     ```
   +  L'esempio seguente mostra come concedere le autorizzazioni su una tabella nel database Amazon Redshift. 

     ```
     aws lakeformation grant-permissions \
       --cli-input-json \
             '{
                 "Principal": {
                     "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin"
                 },
                 "Resource": {
                     "Table": {
                         "CatalogId": "123456789012:nscatalog2/dev",
                         "DatabaseName": "public",
                         "TableWildcard" : {}
                     }
                 },
                 "Permissions": [
                     "ALL"
                 ]
             }'
     ```

------

1. Scegli **Avanti** per esaminare i dettagli del catalogo e creare un catalogo federato. Il catalogo federato appena creato e gli oggetti del catalogo vengono visualizzati nella pagina **Cataloghi**. 

   Si fa riferimento a un catalogo federato Amazon Redshift con. `catalogID = 123456789012:Redshift-federated catalog id`

# Visualizzazione degli oggetti del catalogo
<a name="view-ns-catalog-resources"></a>

 Dopo aver creato il catalogo federato, puoi visualizzare gli oggetti nel catalogo utilizzando la console Lake Formation oppure AWS CLI. 

------
#### [ Console di gestione AWS ]

1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Scegli **Catalogs** in Data Catalog. 

1. Scegli un catalogo federato dall'elenco nella pagina **Cataloghi**.

1.  La pagina di riepilogo del catalogo mostra gli oggetti del catalogo (database e tabelle) per i quali disponi delle autorizzazioni. La scheda **Autorizzazioni** mostra i responsabili IAM a cui sono state concesse le autorizzazioni su questi oggetti. 

------
#### [ AWS CLI ]
+ L' AWS CLI esempio seguente mostra come richiedere il catalogo di primo livello.

  ```
  aws glue get-catalog \
  --catalog-id 123456789012:nscatalog
  ```

  *Risposta*

  ```
  {
      "Catalog": {
          "CatalogId": "123456789012:nscatalog",
          "Name": "nscatalog",
          "ResourceArn": "arn:aws:glue:us-east-1:123456789012:catalog/nscatalog",
          "Description": "Redshift published Catalog",
          "CreateTime": "2024-09-05T14:49:16-07:00",
          "FederatedCatalog": {
              "Identifier": "arn:aws:redshift:us-east-1:123456789012:datashare:b1234589-e823-4a14-ad8e-077085540a50/ds_internal_namespace",
              "ConnectionName": "aws:redshift"
          },
          "CatalogProperties": {
              "DataLakeAccessProperties": {
                  "DataLakeAccess": true,
                  "DataTransferRole": "arn:aws:iam::123456789012:role/DataTransferRole",
                  "KmsKey": "AWS_OWNED_KMS_KEY",
                  "ManagedWorkgroupName": "123456789012:nscatalog",
                  "ManagedWorkgroupStatus": "AVAILABLE",
                  "RedshiftDatabaseName": "dev"
              }
          },
          "CatalogIdentifier": "e2309c2c2fb048f1a3069dfdc1c7883e",
          "CreateTableDefaultPermissions": [],
          "CreateDatabaseDefaultPermissions": []
      }
  }
  ```
+ L'esempio seguente mostra come richiedere tutti i cataloghi dell'account.

  ```
  aws glue get-catalogs \
    --recursive
  ```
+ La seguente richiesta di esempio mostra come ottenere un catalogo a livello di database Amazon Redshift.

  ```
  aws glue get-catlog \
   --catalog-id 123456789012:namespace catalog name/redshift database name
  ```
+ La seguente richiesta di esempio mostra come ottenere i database nel catalogo a livello di database di Amazon Redshift.

  ```
  aws glue get-databases \
  --catalog-id 123456789012:namespace catalog name/redshift database name
  ```
+  La seguente richiesta di esempio mostra come inserire una tabella Amazon Redshift nel catalogo. 

  ```
  aws glue get-table \
    --catalog-id 123456789012:parent catalog name/redshift database \
    --database-name redshift schema name \
    --name table name
  ```
+  L'esempio seguente mostra come ottenere tutte le tabelle dal database Amazon Redshift. 

  ```
  aws glue get-tables \
   --catalog-id 123456789012:namespace catalog name/redshift database name \
   --database-name RS schema name
  ```

------

# Aggiornamento di un catalogo federato
<a name="update-fed-catalog-steps"></a>

Puoi aggiornare un catalogo federato Amazon Redshift nel Data Catalog utilizzando la console Lake Formation AWS CLI o l'[UpdateCatalog](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateCatalog.html)operazione API.

------
#### [ Console di gestione AWS ]

Segui questi passaggi per aggiornare il tuo catalogo federato utilizzando la console Lake Formation.

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

1. Nel riquadro di navigazione a sinistra, scegli **Cataloghi** in **Data Catalog**.

1. Nella pagina **Cataloghi**, scegli il catalogo federato Amazon Redshift che desideri aggiornare.

1. **In **Azioni, scegli** Modifica.**

1. Nella schermata dei **dettagli di Set Catalog**, nella sezione **Accesso dai motori**, scegli **Accedi a questo catalogo dai motori compatibili con Iceberg**. La selezione di questa opzione abiliterà l'accesso al data lake per i motori di query compatibili con Apache Iceberg.

1. Successivamente, crea un nuovo ruolo IAM o scegli un ruolo IAM esistente con la policy che concede le autorizzazioni per eseguire il trasferimento di dati da e verso il bucket Amazon S3.

   Per ulteriori informazioni sulle autorizzazioni, consulta. [Prerequisiti per la gestione dei namespace di Amazon Redshift nel AWS Glue Data Catalog](redshift-ns-prereqs.md)

1. Per impostazione predefinita, i dati nel cluster Amazon Redshift sono crittografati utilizzando un. Chiave gestita da AWS Se scegli di crittografare i dati utilizzando una chiave gestita dal cliente, crea una chiave KMS o scegli una chiave esistente con le autorizzazioni definite nella sezione. [Prerequisiti per la gestione dei namespace di Amazon Redshift nel AWS Glue Data Catalog](redshift-ns-prereqs.md) 

1. Scegli **Save** (Salva).

   Una volta completato con successo, la pagina dei **dettagli del catalogo** mostra il nome del gruppo di lavoro gestito con lo stato «Operazione completata».

------
#### [ AWS CLI ]

Di seguito è riportato un esempio di input `update-catalog` CLI con l'accesso al data lake disabilitato impostando il valore del `DataLakeAacess` parametro come. `false` 

```
aws glue update-catalog  --cli-input-json \
'{
    "Name": "nscatalog", 
    "CatalogInput": {
        "Description": "Redshift published catalog",
        "CreateDatabaseDefaultPermissions" : [],
        "CreateTableDefaultPermissions": [],
        "FederatedCatalog": {
            "Identifier": "arn:aws:redshift:us-east-1:123456789012:datashare:11524d7f-f56d-45fe-83f7-d7bb0a4d6d71/ds_internal_namespace",
            "ConnectionName": "aws:redshift"
        },
        "CatalogProperties": {
          "DataLakeAccessProperties" : {
            "DataLakeAccess" : false
        } 
       }
    }
}'
```

------

# Accesso a un catalogo federato condiviso
<a name="catalog-resource-link"></a>

 AWS Lake Formation le funzionalità tra account consentono agli utenti di condividere in modo sicuro i data lake distribuiti tra più AWS aziende, organizzazioni o direttamente con Account AWS i responsabili IAM in un altro account, fornendo un accesso granulare ai metadati e ai dati sottostanti. 

Lake Formation utilizza il servizio AWS Resource Access Manager (AWS RAM) per facilitare la condivisione delle risorse. Quando condividi una risorsa del catalogo con un altro account, AWS RAM invia un invito all'account del beneficiario per accettare o rifiutare la concessione della risorsa.

I servizi analitici integrati come Amazon Athena e Redshift Spectrum richiedono collegamenti alle risorse per poter includere risorse condivise nelle query. I responsabili devono creare un collegamento tra le risorse che rimandano a una risorsa AWS Glue Data Catalog condivisa da un altro. Account AWS Per ulteriori informazioni sui collegamenti alle risorse, vedi [Come funzionano i collegamenti alle risorse in Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html).

Un *contenitore di link Catalog* è un oggetto Data Catalog, che fa riferimento a un catalogo a livello di database federato locale o interaccount proveniente da altri account. AWS È inoltre possibile creare link al database e link a tabelle all'interno di un contenitore di link al catalogo. Quando crei un link al database o un link a una tabella, devi specificare una risorsa di destinazione che si trova nello stesso catalogo di destinazione a livello di database Amazon Redshift (database Amazon Redshift). 

Per creare un contenitore di link al catalogo, è necessario il Lake Formation `CREATE_CATALOG` o l'`glue:CreateCatalog`autorizzazione.

 È necessario disporre **delle impostazioni della versione 4 o successiva dell'account Cross** per condividere database o tabelle nel catalogo federato tra Account AWS s. 

## Creazione di un contenitore di collegamenti al catalogo verso un catalogo federato tra più account
<a name="create-resource-link-catalog"></a>

È possibile creare un contenitore di link al catalogo che punti a un catalogo federato a livello di database Redshift in qualsiasi AWS regione utilizzando la AWS Lake Formation console, AWS Glue `CreateCatalog` l'API o (). AWS Command Line Interface AWS CLI

**Per creare un contenitore di link al catalogo verso un catalogo condiviso (console)**

1. Apri la AWS Lake Formation console all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/). Accedi come preside in possesso del `CREATE_CATALOG` permesso di Lake Formation. 

1. Nel riquadro di navigazione, scegli **Cataloghi**, quindi scegli **Crea catalogo**.

1. Nella pagina **Imposta i dettagli del catalogo**, fornisci le seguenti informazioni:  
**Name**  
Inserisci un nome che rispetti le stesse regole del nome del catalogo. Il nome può essere lo stesso del catalogo condiviso di destinazione.  
**Tipo**  
Scegliete **Catalog Link Container** come tipo di catalogo.  
**Origine**  
Scegli `Redshift`.  
**Catalogo Target Redshift**  
Seleziona un catalogo federato a livello di database Redshift o scegli un catalogo locale (di proprietà) dall'elenco.  
L'elenco contiene tutti i cataloghi condivisi con il tuo account. Nota che l'ID dell'account del proprietario del catalogo è elencato in ogni catalogo. Se non vedi un catalogo che sai è stato condiviso con il tuo account, controlla quanto segue:  
   + Se non sei un amministratore del data lake, verifica che l'amministratore del data lake ti abbia concesso le autorizzazioni Lake Formation sul catalogo.
   + Se sei un amministratore del data lake e il tuo account non fa parte della stessa AWS organizzazione dell'account concedente, assicurati di aver accettato l'invito AWS Resource Access Manager (AWS RAM) alla condivisione delle risorse per il catalogo. Per ulteriori informazioni, consulta [Accettazione di un invito alla condivisione di risorse da AWS RAM](accepting-ram-invite.md).
Quando si crea un contenitore di link al catalogo tramite la console, il menu a discesa **Target Redshift Catalog potrebbe essere visualizzato `No matches` quando si tenta di selezionare un catalogo** Redshift per più account. Nonostante questa visualizzazione, puoi inserire manualmente l'ARN di destinazione del catalogo federato a livello di database Amazon Redshift (database Amazon Redshift) nel campo di input e il modulo continuerà a funzionare correttamente. Ad esempio: `arn:aws:glue:us-east-1:123456789012:catalog/federated-catalog-redshift/dev`.  
Questo comportamento si verifica perché la console può cercare solo potenziali candidati all'interno dell'account attualmente connesso. Il menu a discesa è inteso come una funzionalità di completamento automatico, ma puoi comunque inserirlo manualmente ARNs per l'accesso su più account.

1. Per consentire ai motori di query Apache Iceberg di leggere e scrivere nei namespace di Amazon Redshift, crea AWS Glue un cluster Amazon Redshift gestito con le risorse di calcolo e storage necessarie per eseguire operazioni di lettura e scrittura senza influire sui carichi di lavoro del data warehouse di Amazon Redshift. È necessario fornire un ruolo IAM con le autorizzazioni necessarie per trasferire dati da e verso il bucket Amazon S3. 

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

1. **(Facoltativo) Scegli Aggiungi autorizzazioni per concedere autorizzazioni ad altri principali.**

   Tuttavia, la concessione delle autorizzazioni su un contenitore di collegamenti al catalogo non concede le autorizzazioni sul catalogo di destinazione (collegato). È necessario concedere le autorizzazioni sul catalogo di destinazione separatamente affinché il link al catalogo sia visibile in Athena.

1. Successivamente, esaminate i dettagli del contenitore dei link al catalogo e scegliete **Crea** catalogo. 

   Puoi quindi visualizzare il nome del contenitore di link nella pagina **Cataloghi.**

   Ora puoi creare link al database e link a tabelle nel contenitore di link del catalogo per consentire l'accesso dai motori di query.

**Creare un esempio di CLI del contenitore di link al catalogo**
+ Nell'esempio seguente, l'`TargetRedshiftCatalog`oggetto specifica l'arn del catalogo federato a livello di database Amazon Redshift (database Amazon Redshift). `DataLakeAccess`Deve essere abilitato quando crei il contenitore di link al catalogo.

  ```
  aws glue create-catalog \
    --cli-input-json 
      '{
          "Name": "linkcontainer", 
          "CatalogInput": {
              "TargetRedshiftCatalog": {
                 "CatalogArn": "arn:aws:us-east-1:123456789012:catalog/nscatalog/dev"
               },
              "CatalogProperties": {
                "DataLakeAccessProperties" : {
                  "DataLakeAccess" : true,
                  "DataTransferRole" : "arn:aws:iam::111122223333:role/DataTransferRole"
               } 
             }
          }
      }'
  ```

## Creazione di collegamenti alle risorse nel contenitore dei link del catalogo
<a name="create-db-table-link"></a>

 È possibile creare collegamenti a risorse a database e tabelle in un contenitore di collegamenti al catalogo. Quando crei link a risorse di database o link a risorse a tabelle, devi specificare una risorsa di destinazione che risieda nello stesso catalogo di destinazione a livello di database Amazon Redshift (database Amazon Redshift) a cui punta il contenitore di link. 

Puoi creare un link di risorsa a un database o a una tabella Amazon Redshift condiviso utilizzando la AWS Lake Formation console, l'API o AWS Command Line Interface ()AWS CLI.
+ Per istruzioni dettagliate, vedi [Creazione di un collegamento di risorsa a un database Data Catalog condiviso](create-resource-link-database.md).

  Di seguito è riportato un AWS CLI esempio per creare un collegamento a una risorsa di database in un contenitore di link al catalogo.

  ```
  aws glue create-database \
    --cli-input-json \
      '{
          "CatalogId": "111122223333:linkcontainer",
          "DatabaseInput": {
              "Name": "dblink",
               "TargetDatabase": {
                 "CatalogId": "123456789012:nscatalog/dev",
                  "DatabaseName": "schema1"
               }
          }
      }'
  ```
+ Per creare un collegamento alle risorse della tabella in un contenitore di collegamenti al catalogo, è necessario innanzitutto creare un AWS Glue database in locale che contenga il collegamento AWS Glue Data Catalog alla risorsa della tabella.

  Per ulteriori informazioni sulla creazione di collegamenti di risorse a tabelle condivise, consulta[Creazione di un collegamento di risorsa a una tabella condivisa del Catalogo dati](create-resource-link-table.md).
  +  Crea un database che contenga l'esempio di collegamento alle risorse della tabella

    ```
    aws glue create-database \
      --cli-input-json \
          '{
              "CatalogId": "111122223333:linkcontainer",
              "DatabaseInput": {
                  "Name": "db1",
                  "Description": "creating parent database for table link"
              }
          }'
    ```
  +  Crea un esempio di collegamento alle risorse della tabella

    ```
    aws glue create-table \
      --cli-input-json \
        '{
            "CatalogId": "111122223333:linkcontainer",
             "DatabaseName": "db1",
            "TableInput": {
                "Name": "tablelink",
                "TargetTable": {
                    "CatalogId": "123456789012:nscatalog/dev",
                   "DatabaseName": "schema1", 
                    "Name": "table1"
                 }
            }
        }'
    ```

# Eliminazione di un catalogo federato
<a name="delete-rs-fed-catalog"></a>

 È possibile eliminare i cataloghi federati creati AWS Glue Data Catalog utilizzando l'`glue:DeleteCatalog`operazione o la console. AWS Lake Formation 

**Per eliminare un catalogo federato (console)**

1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Nel riquadro di navigazione, scegli **Catalogs** in **Data Catalog**.

1. Scegli il catalogo che desideri eliminare dall'elenco dei cataloghi.

1. Scegli **Elimina** da **Azioni**. 

1. Scegli **Elimina** per confermare e il catalogo federato verrà eliminato dal Data Catalog.  
![\[La conferma dell'eliminazione del catalogo.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/delete-fed-catalog.png)

**Per eliminare un catalogo federato (CLI)**
+ 

  ```
  aws glue delete-catalog 
   --catalog-id 123456789012:catalog name
  ```

# Interrogazione di cataloghi federati
<a name="query-redshift-fed-catalog"></a>

Dopo aver concesso le autorizzazioni ad altri responsabili, possono accedere e iniziare a interrogare le tabelle nei cataloghi federati accedendo agli strumenti SQL utilizzando Amazon Redshift, Amazon EMR ed ETL. Amazon Athena AWS Glue 

 [Per ulteriori informazioni sulla connessione all'endpoint di AWS Glue Data Catalog estensione Apache Iceberg Rest o all'applicazione Spark autonoma, consulta la sezione Accesso alla sezione della Guida per gli sviluppatori. AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/access_catalog.html) AWS Glue 

Puoi utilizzare le query DDL (Data Definition Language) per creare e gestire tabelle nel database utilizzando Apache Spark su Amazon EMR. Per creare ed eliminare tabelle nel database Amazon Redshift, il principale deve disporre delle autorizzazioni Lake Formation`Create table`. `Drop`

 Per ulteriori informazioni sulla concessione delle autorizzazioni di Data Catalog, consulta. [Concessione delle autorizzazioni per le risorse del Data Catalog](granting-catalog-permissions.md) 

Per ulteriori informazioni sull'interrogazione delle risorse del catalogo Amazon Athena, consulta [Interrogazione Amazon Athena nella Guida per l'utente AWS Glue Data Catalog di](https://docs.aws.amazon.com/athena/latest/ug/gdc-register.html) Amazon Athena. 

# Risorse aggiuntive
<a name="additional-resources-byod"></a>

Puoi utilizzare [Amazon SageMaker Lakehouse](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse.html) per ottenere un accesso unificato ai dati sia nei data warehouse che nei data lake. Tramite SageMaker Lakehouse, puoi utilizzare i motori preferiti di analisi, machine learning e business intelligence attraverso un'API REST Apache Iceberg aperta per garantire un accesso sicuro ai dati con controlli di accesso coerenti e dettagliati.
+ [ SageMaker Workshop Amazon](https://catalog.us-east-1.prod.workshops.aws/workshops/107188af-3663-4bbf-bb35-93d514d406da/en-US/03lakehouse)
+ [Semplifica l'accesso ai dati per la tua azienda con Amazon SageMaker Lakehouse](https://aws.amazon.com/blogs/big-data/simplify-data-access-for-your-enterprise-using-amazon-sagemaker-lakehouse/)

# Federazione in fonti di dati esterne in AWS Glue Data Catalog
<a name="federated-catalog-data-connection"></a>

 Puoi connettere AWS Glue Data Catalog (Data Catalog) a data warehouse come Amazon Redshift, Snowflake, database cloud come Amazon RDS Amazon DynamoDB e Oracle e servizi di streaming come Amazon MSK e sistemi locali come Teradata utilizzando connessioni. AWS Glue Queste connessioni vengono archiviate AWS Glue Data Catalog e registrate con AWS Lake Formation, consentendoti di creare un catalogo federato per ogni fonte di dati disponibile. 

 Un *catalogo federato* è un contenitore di primo livello che punta a un database in un sistema di dati esterno. Consente di interrogare i dati direttamente dal sistema di dati esterno senza il processo di estrazione, trasformazione e caricamento (ETL). 

Per ulteriori informazioni sulle AWS Glue connessioni, consulta [Connecting to data](https://docs.aws.amazon.com/glue/latest/dg/glue-connections.html) nella AWS Glue Developer Guide.

Gli amministratori di Data Lake possono creare cataloghi federati utilizzando [Amazon SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse.html) Lakehouse o. [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/connect-to-a-data-source.html)

Gli amministratori di Data Lake possono quindi concedere autorizzazioni dettagliate sugli oggetti all'interno del catalogo utilizzando Lake Formation, controllando l'accesso a vari livelli come catalogo, database, tabella, colonna, riga o cella. Gli analisti di dati possono scoprire e interrogare le fonti di dati catalogate utilizzando Athena, con Lake Formation che applica le politiche di accesso definite. Gli analisti possono unire i dati provenienti da più fonti in un'unica query senza dover connettersi a ciascuna fonte singolarmente. 

**Topics**
+ [Flusso di lavoro](#connect-data-source-workflow)
+ [Prerequisiti per connettere il Data Catalog a fonti di dati esterne](connect-data-source-prerequisites.md)
+ [Creazione di un catalogo federato utilizzando una connessione AWS Glue](create-fed-catalog-data-source.md)
+ [Visualizzazione degli oggetti del catalogo](view-fed-glue-connection-catalog.md)
+ [Eliminazione di un catalogo federato](delete-glue-fed-catalog.md)
+ [Interrogazione di cataloghi federati](query-glue-fed-catalog.md)
+ [Risorse aggiuntive](additional-resources-fed-connection.md)

## Flusso di lavoro
<a name="connect-data-source-workflow"></a>

Un amministratore del data lake o un utente con le autorizzazioni richieste completa i seguenti passaggi per connetterli AWS Glue Data Catalog a un'origine dati esterna.

1.  Crea una AWS Glue connessione all'origine dati. Quando registri la connessione, il ruolo IAM utilizzato nella registrazione della connessione deve avere accesso alla funzione Lambda e alla posizione dello spill bucket di Amazon S3. 

1.  Registra la connessione con Lake Formation. 

1.  Crea un catalogo federato nel Data Catalog utilizzando una AWS Glue connessione per connettersi alle fonti di dati disponibili. I database, le tabelle e le viste vengono catalogati automaticamente nel Data Catalog e registrati con Lake Formation. 

1.  Concede l'accesso a cataloghi, database e tabelle specifici agli analisti di dati utilizzando le autorizzazioni di Lake Formation. È possibile definire politiche di controllo degli accessi granulari tra data lake, warehouse e fonti OLTP utilizzando Lake Formation, abilitando filtri di sicurezza a livello di riga e colonna. 

    Gli analisti di dati possono quindi accedere a tutti i dati tramite il Data Catalog utilizzando le query SQL in Athena, senza bisogno di connessioni separate o credenziali di origine dati. Gli analisti possono eseguire query SQL federate che analizzano i dati da più fonti, unendo i dati sul posto senza pipeline di dati complesse. 

# Prerequisiti per connettere il Data Catalog a fonti di dati esterne
<a name="connect-data-source-prerequisites"></a>

Per connetterli AWS Glue Data Catalog a fonti di dati esterne, registrare la connessione con Lake Formation e configurare cataloghi federati, devi soddisfare i seguenti requisiti:
**Nota**  
Consigliamo a un amministratore del data lake di Lake Formation di creare le AWS Glue connessioni per connettersi a fonti di dati esterne e creare i cataloghi federati. 

1. 

**Creare ruoli IAM.**
   +  Crea un ruolo con le autorizzazioni necessarie per distribuire le risorse (funzione Lambda, Amazon S3 spill bucket, ruolo IAM e AWS Glue connessione) necessarie per creare una connessione all'origine dati esterna. 
   + Crea un ruolo con le autorizzazioni minime necessarie per accedere alle proprietà della AWS Glue connessione (la funzione Lambda e lo spill bucket di Amazon S3). Questo è il ruolo che includerai quando registrerai la connessione con Lake Formation.

     Per utilizzare Lake Formation per gestire e proteggere i dati nel tuo data lake, devi registrare la AWS Glue connessione con Lake Formation. In questo modo, Lake Formation può fornire credenziali ad Amazon Athena per interrogare le fonti di dati federate. 

     Il ruolo deve avere `Select` o `Describe` autorizzazioni sul bucket Amazon S3 e sulla funzione Lambda.
     +  s3: ListBucket 
     + s3: GetObject
     +  lambda: InvokeFunction 

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

****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Action": [
             "s3:*"
           ],
           "Resource": [
             "arn:aws:s3:::amzn-s3-demo-bucket1/object/*",
             "arn:aws:s3:::amzn-s3-demo-bucket1/object"
           ]
         },
         {
           "Sid": "lambdainvoke",
           "Effect": "Allow",
           "Action": "lambda:InvokeFunction",
           "Resource": "arn:aws:lambda:us-east-1:123456789012:function:example-lambda-function"
         },
         {
           "Sid": "gluepolicy",
           "Effect": "Allow",
           "Action": "glue:*",
           "Resource": "*"
         }
       ]
     }
     ```

------
   + Aggiungi la seguente politica di fiducia al ruolo IAM utilizzato nella registrazione della connessione:

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

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service": [
                         "lakeformation.amazonaws.com"
                   ]
                 },
                 "Action": "sts:AssumeRole"
             }
         ]
     }
     ```

------
   + L'amministratore del data lake che registra la connessione deve disporre dell'`iam:PassRole`autorizzazione per il ruolo.

     Di seguito è riportata una politica in linea che concede questa autorizzazione. Sostituiscilo *<account-id>* con un numero di AWS account valido e *<role-name>* sostituiscilo con il nome del ruolo.

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

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "PassRolePermissions",
                 "Effect": "Allow",
                 "Action": [
                     "iam:PassRole"
                 ],
                 "Resource": [
                     "arn:aws:iam::111122223333:role/example-role-name>"
                 ]
             }
         ]
     }
     ```

------
   +  Per creare cataloghi federati in Data Catalog, assicurati che il ruolo IAM che stai utilizzando sia un amministratore del data lake di Lake Formation controllando le impostazioni del data lake ()`aws lakeformation get-data-lake-settings`.

      Se non sei un amministratore di data lake, hai bisogno dell'`CREATE_CATALOG`autorizzazione Lake Formation per creare un catalogo. L'esempio seguente mostra come concedere le autorizzazioni necessarie per creare cataloghi. 

     ```
     aws lakeformation grant-permissions \
     --cli-input-json \
             '{
                 "Principal": {
                  "DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/non-admin"
                 },
                 "Resource": {
                     "Catalog": {
                     }
                 },
                 "Permissions": [
                     "CREATE_CATALOG",
                     "DESCRIBE"
                 ]
             }'
     ```

1. Aggiungi la seguente politica chiave alla AWS KMS chiave se utilizzi una chiave gestita dal cliente per crittografare i dati nell'origine dati. Sostituisci il numero di account con un numero di AWS account valido e specifica il nome del ruolo. Per impostazione predefinita, i dati vengono crittografati utilizzando una chiave KMS. Lake Formation offre un’opzione per creare una chiave KMS personalizzata per la crittografia. Se utilizzi una chiave gestita dal cliente, devi aggiungere politiche chiave specifiche alla chiave. 

   Per ulteriori informazioni relative alla gestione delle autorizzazioni di una chiave gestita dal cliente, consulta [Customer managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-1"
           }
       ]
   }
   ```

------

# Creazione di un catalogo federato utilizzando una connessione AWS Glue
<a name="create-fed-catalog-data-source"></a>

 Per connetterla AWS Glue Data Catalog a fonti di dati esterne, è necessario utilizzare AWS Glue connessioni che consentano la comunicazione con le fonti di dati esterne. Puoi creare AWS Glue connessioni utilizzando la AWS Glue console, l'API [Create connection](https://docs.aws.amazon.com/glue/latest/webapi/API_CreateConnection.html) e la console Amazon SageMaker Lakehouse. 

Per istruzioni dettagliate sulla creazione di una AWS Glue connessione, consulta [Connessione ai dati](https://docs.aws.amazon.com/glue/latest/dg/glue-connections.html) nella Guida per gli AWS Glue sviluppatori o [Creazione di connessioni in Amazon SageMaker Lakehouse](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse-create-connection.html). 

Quando un utente esegue una query su tabelle federate, Lake Formation invia credenziali che richiamano una AWS Lambda funzione specificata nella AWS Glue connessione per recuperare oggetti di metadati dall'origine dati. 

------
#### [ Console di gestione AWS ]

**Per creare un catalogo federato da un'origine dati esterna e impostare le autorizzazioni (console)**

1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Nel riquadro di navigazione, scegli **Catalogs** in **Data Catalog**.

1. Seleziona l'opzione **Crea catalogo**. 

1. Nella pagina dei dettagli di **Set Catalog**, inserite le seguenti informazioni:   
![\[La pagina di creazione del catalogo con opzioni.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/create-glue-connection-catalog.png)
   + **Nome**: un nome univoco per il tuo catalogo federato. Il nome non può essere modificato e deve essere scritto in minuscolo. Il nome può essere composto da un massimo di 255 caratteri. account. 
   + **Tipo**: scegli il catalogo federato come tipo di catalogo.
   + **Fonte**: scegli una fonte di dati dal menu a discesa. Vengono visualizzate le origini dati per le quali sono state create connessioni. Per ulteriori informazioni sulla creazione di una AWS Glue connessione a un'origine dati esterna, consulta [Creazione di connessioni per connettori](https://docs.aws.amazon.com/glue/latest/dg/creating-connections.html) nella Guida per gli AWS Glue sviluppatori o [Creazione di connessioni in Amazon SageMaker Lakehouse](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse-create-connection.html).
   + **Connessione**: scegli una AWS Glue connessione esistente all'origine dati.
   + **Descrizione**: immetti una descrizione per il catalogo creato dalla fonte di dati.

1. Scegli un **ruolo IAM** che Lake Formation assuma per vendere le credenziali al motore di interrogazione per accedere ai dati dalla fonte dati. Questo ruolo deve disporre delle autorizzazioni necessarie per accedere alla AWS Glue connessione e richiamare la funzione Lambda per accedere ai dati dall'origine dati esterna.

   Puoi anche **creare un nuovo ruolo nella console** IAM.

   Consulta la [Prerequisiti per connettere il Data Catalog a fonti di dati esterne](connect-data-source-prerequisites.md) sezione per le autorizzazioni richieste.

1.  Seleziona l'opzione **Attiva il connettore per connetterti all'origine dati** per consentire ad Athena di eseguire query federate.

   Per l'elenco dei connettori supportati, consulta [Registra la tua connessione](https://docs.aws.amazon.com/athena/latest/ug/register-connection-as-gdc.html) nella Guida per l'utente di Amazon Athena. 

1. **Opzioni di crittografia**: scegli l'opzione **Personalizza le impostazioni di crittografia** se desideri utilizzare una chiave personalizzata per crittografare il catalogo. Per utilizzare una chiave personalizzata, è necessario aggiungere una policy della chiave gestita personalizzata alla propria chiave KMS. 

1. Scegli **Avanti** per concedere le autorizzazioni ad altri principali. 

1. **Nella pagina **Concedi autorizzazioni**, scegli Aggiungi autorizzazioni.**

1.  Nella schermata **Aggiungi autorizzazioni**, scegli i principali e i tipi di autorizzazioni da concedere.   
![\[La pagina delle autorizzazioni del catalogo con le opzioni principali di tipo e concessione.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/catalog-permissions.png)
   +  Nella sezione **Principali**, scegli un tipo di principale e quindi specifica i principali per concedere le autorizzazioni. 
     + **Utenti e ruoli IAM**: scegli uno o più utenti o ruoli dall’elenco degli utenti e dei ruoli IAM.
     + **Utenti e gruppi SAML**: per SAML e Amazon Quick utenti e gruppi, inserisci uno o più Amazon Resource Names (ARNs) per utenti o gruppi federati tramite SAML o per utenti o gruppi ARNs Amazon Quick. Premi **Invio** dopo ogni ARN. 
   +  Nella sezione **Autorizzazioni**, seleziona le autorizzazioni e le autorizzazioni concedibili.

     In **Autorizzazioni del catalogo**, seleziona una o più autorizzazioni da concedere.

     Scegli **Super utente** per concedere autorizzazioni amministrative illimitate su tutte le risorse all’interno del catalogo.

      In Autorizzazioni **concedibili, seleziona le autorizzazioni che il destinatario della sovvenzione** può concedere agli altri responsabili del proprio account. AWS Questa opzione non è supportata quando si concedono autorizzazioni a un principale IAM da un account esterno. 

1. Scegli **Avanti** per esaminare le informazioni e creare il catalogo. L'elenco dei **cataloghi** mostra il nuovo catalogo federato.

   L'elenco delle **posizioni dei dati** mostra la connessione federata appena registrata.  
![\[L'elenco delle posizioni dati con le connessioni federate.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/federated_data_lake_location.png)

------
#### [ AWS CLI ]

**Per creare un catalogo federato da un'origine dati esterna e impostare le autorizzazioni**

1.  L'esempio seguente mostra come creare una AWS Glue connessione. 

   ```
   aws glue create-connection 
     --connection-input \
         '{
            "Name": "DynamoDB connection",
            "ConnectionType": "DYNAMODB",
            "Description": "A connection created for DynamoDB",
            "ConnectionProperties": {},
            "AthenaProperties": "spill_prefix": "your_spill_prefix",
            "lambda_function_arn": "Lambda_function_arn",
            "spill_bucket": "Your_Bucket_name",
            "AuthenticationConfiguration": {}
         }'
   ```

1.  L'esempio seguente mostra come registrare una AWS Glue connessione con Lake Formation. 

   ```
   aws lakeformation register-resource 
     --cli-input-json \
       {"ResourceArn":"arn:aws:glue:us-east-1:123456789012:connection/dynamo","RoleArn":"arn:aws:iam::123456789012:role/AdminTelemetry","WithFederation":true}
   ```

1.  L'esempio seguente mostra come creare un catalogo federato. 

   ```
   aws glue create-catalog 
    --cli-input-json \
         '{
          "Name":"ddbcatalog",
          "CatalogInput":{"CatalogProperties":{"DataLakeAccessProperties":{"DataTransferRole":"arn:aws:iam::123456789012:role/role name"}},
          "CreateDatabaseDefaultPermissions":[],
          "CreateTableDefaultPermissions":[],
          "FederatedCatalog":{"ConnectionName":"dynamo","Identifier":"dynamo"}
            }
          }'
   ```

------

# Visualizzazione degli oggetti del catalogo
<a name="view-fed-glue-connection-catalog"></a>

Per ogni fonte di dati disponibile, AWS Glue crea un catalogo corrispondente in. AWS Glue Data Catalog Dopo aver creato un catalogo, puoi visualizzare i database e le tabelle nel catalogo utilizzando la console Lake Formation o AWS CLI. In 

1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Scegli **Catalogs** in Data Catalog. La pagina dei cataloghi mostra i cataloghi per i quali disponi delle autorizzazioni.  
![\[Visualizza i cataloghi.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/view-catalogs.png)

1. Scegliete un catalogo dall'elenco per visualizzare i database e le tabelle in esso contenuti. L'elenco contiene i database presenti nell'account e i collegamenti alle risorse, che sono collegamenti a database e tabelle condivisi negli account esterni e vengono utilizzati per l'accesso tra account diversi ai dati nel data lake.  
![\[Visualizza cataloghi/database.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/catalog-database-view.png)

1. Scegli l'opzione **Tabelle** in **Visualizza** per visualizzare e gestire le tabelle nel database. 

****AWS CLI esempi per la visualizzazione di cataloghi e database****  
L'esempio seguente mostra come visualizzare un catalogo utilizzando AWS CLI 

```
aws glue get-catalog \
--catalog-id 123456789012:dynamodbcatalog
```

L'esempio seguente mostra come richiedere tutti i cataloghi dell'account.

```
aws glue get-catalogs \
 --recursive
```

La seguente richiesta di esempio mostra come ottenere i database nel catalogo.

```
aws glue get-database \
--catalog-id 123456789012:dynamodbcatalog
--database-name database name
```

# Eliminazione di un catalogo federato
<a name="delete-glue-fed-catalog"></a>

 È possibile eliminare i cataloghi federati creati AWS Glue Data Catalog utilizzando l'`glue:DeleteCatalog`operazione o la console. AWS Lake Formation 

**Per eliminare un catalogo federato (console)**

1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Nel riquadro di navigazione, scegli **Catalogs** in **Data Catalog**.

1. Scegli il catalogo che desideri eliminare dall'elenco dei cataloghi.

1. Scegli **Elimina** da **Azioni**. 

1. Scegli **Elimina** per confermare e il catalogo federato verrà eliminato dal Data Catalog.  
![\[La conferma dell'eliminazione del catalogo.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/delete-fed-catalog.png)

**Per eliminare un catalogo federato (CLI)**
+ 

  ```
  aws glue delete-catalog 
    --catalog-id 123456789012:catalog name
  ```

# Interrogazione di cataloghi federati
<a name="query-glue-fed-catalog"></a>

Dopo aver concesso le autorizzazioni ad altri responsabili, questi possono accedere e iniziare a interrogare le tabelle nei cataloghi federati utilizzando Athena.

Per creare ed eliminare tabelle nel database federato, il principale deve disporre delle `Drop` autorizzazioni di Lake Formation`Create table`.

 Per ulteriori informazioni sulla concessione delle autorizzazioni di Data Catalog, consulta. [Concessione delle autorizzazioni per le risorse del Data Catalog](granting-catalog-permissions.md) 

Per ulteriori informazioni sull'interrogazione del catalogo dati da Amazon Athena, consulta [Interrogazione AWS Glue Data CatalogAmazon Athena](https://docs.aws.amazon.com/athena/latest/ug/gdc-register.html) nella Guida per l'utente di Amazon Athena. 

# Risorse aggiuntive
<a name="additional-resources-fed-connection"></a>

 In questo post del blog, mostriamo come gli analisti di dati possono ora accedere e interrogare in modo sicuro i dati archiviati all'esterno dei data lake S3, inclusi i data warehouse e i Amazon DynamoDB database di Amazon Redshift, il tutto attraverso un'unica esperienza unificata. Gli amministratori possono ora applicare controlli di accesso a diversi livelli di granularità per garantire che i dati sensibili rimangano protetti ampliando al contempo l'accesso ai dati. Ciò consente alle organizzazioni di accelerare le iniziative relative ai dati mantenendo al contempo la sicurezza e la conformità, portando a un processo decisionale più rapido e basato sui dati. 
+ [Cataloga e gestisci le query federate di Amazon Athena con Amazon Lakehouse SageMaker ](https://aws.amazon.com/blogs/big-data/catalog-and-govern-amazon-athena-federated-queries-with-amazon-sagemaker-lakehouse/)

# Integrazione di Amazon S3 Tables con e AWS Glue Data Catalog AWS Lake Formation
<a name="create-s3-tables-catalog"></a>

[Le tabelle Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables.html) forniscono uno storage S3 specificamente ottimizzato per i carichi di lavoro di analisi, migliorando le prestazioni delle query e riducendo i costi. I dati in Tabelle S3 sono archiviati in un nuovo tipo di bucket: un *bucket di tabelle*, che archivia le tabelle come sottorisorse. Le tabelle S3 hanno il supporto integrato per lo standard Apache Iceberg, che consente di interrogare facilmente i dati tabulari nei bucket di tabelle Amazon S3 utilizzando i motori di query più diffusi come Apache Spark.

Puoi integrare Amazon S3 Tables AWS Glue Data Catalog utilizzando i controlli di accesso IAM o con sovvenzioni IAM e Lake Formation:
+ **Controllo degli accessi IAM**: utilizza le policy IAM per controllare l'accesso a S3 Tables e Data Catalog. In questo approccio di controllo degli accessi, sono necessarie le autorizzazioni IAM sia sulle risorse S3 Tables che sugli oggetti Data Catalog per accedere alle risorse.
+ **Controllo degli accessi a Lake Formation**: utilizza le AWS Lake Formation concessioni oltre alle autorizzazioni AWS Glue IAM per controllare l'accesso a S3 Tables tramite il Data Catalog. In questa modalità, i principali richiedono le autorizzazioni IAM per interagire con il Data Catalog e le sovvenzioni Lake Formation determinano a quali risorse del catalogo (database, tabelle, colonne, righe) il principale può accedere. Questa modalità supporta sia il controllo degli accessi a grana grossolana (concessioni a livello di database e tabella) sia il controllo degli accessi a grana fine (sicurezza a livello di colonna e di riga). Quando viene configurato un ruolo registrato e la vendita di credenziali è abilitata, le autorizzazioni IAM di S3 Tables non sono richieste per il principale, poiché Lake Formation fornisce le credenziali per conto del principale utilizzando il ruolo registrato. Il controllo degli accessi di Lake Formation supporta anche la vendita di credenziali per motori di analisi di terze parti.

Questa sezione fornisce indicazioni per configurare l'integrazione con AWS Lake Formation per i seguenti scenari:
+ **Scenario A**: hai integrato S3 Tables and Data Catalog utilizzando i controlli di accesso IAM e ora intendi AWS Lake Formation utilizzarli. Per ulteriori informazioni, consulta [Modifica dei controlli di accesso per l'integrazione con S3 Tables](manage-s3tables-catalog-integration.md).
+ **Scenario B**: prevedi di integrare S3 Tables e Data Catalog utilizzando AWS Lake Formation e attualmente non li hai integrati nel tuo account e nella tua regione. Inizia con la [Prerequisiti per l'integrazione del catalogo di tabelle Amazon S3 con Data Catalog e Lake Formation](s3tables-catalog-prerequisites.md) sezione e prosegui[Abilitazione dell'integrazione con Amazon S3 Tables](enable-s3-tables-catalog-integration.md).
+ **Scenario C**: hai integrato S3 Tables e Data Catalog utilizzando AWS Lake Formation e ora intendi utilizzare IAM. Per ulteriori informazioni, consulta [Modifica dei controlli di accesso per l'integrazione con S3 Tables](manage-s3tables-catalog-integration.md).

Assicurati di seguire i passaggi descritti in [Integrazione delle tabelle S3 con i servizi di AWS analisi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) in modo da disporre delle autorizzazioni appropriate per accedere alle risorse e alle tabelle AWS Glue Data Catalog e per lavorare con i servizi di analisi. AWS 

**Topics**
+ [Come funziona l'integrazione tra Data Catalog e Lake Formation](#w2aac13c27c19)
+ [Prerequisiti per l'integrazione del catalogo di tabelle Amazon S3 con Data Catalog e Lake Formation](s3tables-catalog-prerequisites.md)
+ [Abilitazione dell'integrazione con Amazon S3 Tables](enable-s3-tables-catalog-integration.md)
+ [Creazione di database e tabelle nel catalogo di tabelle S3](create-databases-tables-s3-catalog.md)
+ [Registrazione di un bucket da tavolo Amazon S3 in un altro account AWS](register-cross-account-s3-table-bucket.md)
+ [Concessione di autorizzazioni](s3-tables-grant-permissions.md)

## Come funziona l'integrazione tra Data Catalog e Lake Formation
<a name="w2aac13c27c19"></a>

Quando integri il catalogo di tabelle S3 con Data Catalog e Lake Formation, il AWS Glue servizio crea un unico catalogo federato chiamato `s3tablescatalog` nel Data Catalog predefinito del tuo account specifico per il tuo. Regione AWS L'integrazione mappa tutte le risorse del table bucket di Amazon S3 nel tuo account e Regione AWS nel catalogo federato nel modo seguente:
+ I bucket da tavolo Amazon S3 diventano un catalogo multilivello nel Data Catalog.
+ Lo spazio dei nomi Amazon S3 associato è registrato come database nel Data Catalog.
+ Le tabelle Amazon S3 nel bucket di tabelle diventano tabelle nel Data Catalog.

![\[Mappatura di oggetti tra S3 Tables e. AWS Glue Data Catalog\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/S3Tables-glue-catalog.png)


 Dopo l'integrazione con Lake Formation, puoi creare tabelle Apache Iceberg nel catalogo di table buckets e accedervi tramite motori di AWS analisi integrati come Amazon Athena Amazon EMR e motori di analisi di terze parti. 

Quando abiliti anche Lake Formation con integrazione, abilita un controllo granulare degli accessi tramite. AWS Lake Formation Questo approccio alla sicurezza significa che, oltre alle autorizzazioni AWS Identity and Access Management (IAM), devi concedere al tuo responsabile IAM con Lake Formation le autorizzazioni sulle tue tabelle prima di poterle utilizzare.

Esistono due tipi principali di autorizzazioni in AWS Lake Formation:
+ Le autorizzazioni di accesso ai metadati controllano la possibilità di creare, leggere, aggiornare ed eliminare database e tabelle di metadati nel Catalogo dati.
+ Le autorizzazioni di accesso ai dati sottostanti controllano la capacità di leggere e scrivere dati nelle posizioni Amazon S3 sottostanti a cui fanno riferimento le risorse del Catalogo dati.

Lake Formation utilizza una combinazione del proprio modello di autorizzazioni e del modello di autorizzazioni IAM per controllare l’accesso alle risorse del Catalogo dati e ai dati sottostanti:
+ Affinché una richiesta di accesso alle risorse del Catalogo dati o ai dati sottostanti abbia esito positivo, la richiesta deve superare i controlli di autorizzazione sia di IAM sia di Lake Formation.
+ Le autorizzazioni IAM controllano l'accesso a Lake Formation AWS Glue APIs e alle risorse, mentre le autorizzazioni di Lake Formation controllano l'accesso alle risorse del Data Catalog, alle sedi Amazon S3 e ai dati sottostanti.

Le autorizzazioni Lake Formation si applicano solo nella Regione in cui sono state concesse e un principale deve essere autorizzato da un amministratore del data lake o da un altro principale con le autorizzazioni necessarie al fine di ottenere le autorizzazioni Lake Formation.

# Prerequisiti per l'integrazione del catalogo di tabelle Amazon S3 con Data Catalog e Lake Formation
<a name="s3tables-catalog-prerequisites"></a>

Di seguito sono riportati i prerequisiti per abilitare l'integrazione AWS Glue Data Catalog delle tabelle Amazon S3 con e. AWS Lake Formation

1.  Quando abiliti l'integrazione delle tabelle Amazon S3, Lake Formation registra automaticamente la posizione delle tabelle S3. Per registrare la posizione del table bucket con Lake Formation, è necessario un IAM role/user con `lakeformation:RegisterResource` e `lakeformation:CreateCatalog` autorizzazioni. `lakeformation:RegisterResourceWithPrivilegedAccess` Quando un utente non amministratore con queste autorizzazioni registra una posizione di catalogo, Lake Formation concede automaticamente l'`DATA_LOCATION_ACCESS`autorizzazione per quella posizione, concedendo al responsabile chiamante le autorizzazioni per eseguire tutte le operazioni di Lake Formation supportate sulla posizione dati registrata.

1. <a name="step3-permissions"></a> Quando abiliti l'integrazione delle tabelle S3, devi scegliere un ruolo IAM per Lake Formation per vendere le credenziali per consentire l'accesso ai dati. Crea un ruolo IAM per l'accesso ai dati di Lake Formation ai tuoi bucket di tabelle S3. Il ruolo IAM utilizzato durante la registrazione del table bucket con Lake Formation richiede le seguenti autorizzazioni: 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "LakeFormationPermissionsForS3ListTableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:ListTableBuckets"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:CreateTableBucket",
                   "s3tables:GetTableBucket",
                   "s3tables:CreateNamespace",
                   "s3tables:GetNamespace",
                   "s3tables:ListNamespaces",
                   "s3tables:DeleteNamespace",
                   "s3tables:DeleteTableBucket",
                   "s3tables:CreateTable",
                   "s3tables:DeleteTable",
                   "s3tables:GetTable",
                   "s3tables:ListTables",
                   "s3tables:RenameTable",
                   "s3tables:UpdateTableMetadataLocation",
                   "s3tables:GetTableMetadataLocation",
                   "s3tables:GetTableData",
                   "s3tables:PutTableData"
               ],
               "Resource": [
                   "arn:aws:s3tables:us-east-1:123456789012:bucket/*"
               ]
           }
       ]
   }
   ```

------

   Per ulteriori informazioni, consulta [Requisiti per i ruoli utilizzati per registrare le sedi](registration-role.md).

1.  Aggiungi la seguente policy di fiducia al ruolo IAM per consentire al servizio Lake Formation di assumere il ruolo e fornire credenziali temporanee ai motori analitici integrati. 

   ```
   {
     "Effect": "Allow",
     "Principal": {
       "Service": "lakeformation.amazonaws.com"
     },
     "Action": [
       "sts:AssumeRole",
       "sts:SetSourceIdentity",
       "sts:SetContext"  # add action to trust relationship when using IAM Identity center principals with Lake Formation
     ]
   }
   ```

**Nota**  
Il processo di integrazione dei servizi di AWS analisi è stato aggiornato. Se l’integrazione è stata configurata con la versione di anteprima, è possibile continuare a utilizzare l’integrazione attuale. Tuttavia, il processo di integrazione aggiornato offre miglioramenti delle prestazioni. Per aggiornare l'integrazione:  
Innanzitutto, elimina il catalogo di tabelle S3 esistente in Lake Formation. **Per eliminare il catalogo, selezionate il `s3tablescatalog` catalogo dall'elenco dei cataloghi e scegliete **Elimina** dalle azioni.**
Quindi, annulla la registrazione della posizione dei dati per. `s3tablescatalog`  
Nella console Lake Formation, nella sezione **Amministrazioni**, scegli **Data Locations**.
Seleziona una posizione e dal menu **Azioni** scegli **Rimuovi**.
Quando viene richiesta la conferma, scegli **Rimuovi**.  
Per istruzioni dettagliate sull'annullamento della registrazione di una posizione dati, consulta la sezione. [Annullamento della registrazione di una sede Amazon S3](unregister-location.md)
Quindi, segui i passaggi di integrazione aggiornati nella [Abilitazione dell'integrazione con Amazon S3 Tables](enable-s3-tables-catalog-integration.md) sezione.

# Abilitazione dell'integrazione con Amazon S3 Tables
<a name="enable-s3-tables-catalog-integration"></a>

Puoi creare bucket di tabelle Amazon S3 utilizzando la console Amazon S3 e integrarla con i servizi di analisi. AWS Per ulteriori informazioni, consulta [Usare le tabelle Amazon S3 con i servizi di AWS analisi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html). 

 Nel AWS Lake Formation, puoi abilitare l'integrazione di Amazon S3 Tables con AWS Glue Data Catalog e AWS Lake Formation utilizzando la console Lake Formation o utilizzarla. AWS CLI

## Per integrare Amazon S3 Tables con Data Catalog e Lake Formation (console)
<a name="w2aac13c27c23b7b1"></a>

1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Nel riquadro di navigazione, scegli **Catalogs** in **Data Catalog**.

1. Scegli **Abilita l'integrazione con S3 Table** nella pagina **Cataloghi**.   
![\[L'opzione Abilita l'integrazione delle tabelle S3 nella pagina dei cataloghi.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/enable-s3-table-integration.png)

1.  Scegli un ruolo IAM con le autorizzazioni richieste a Lake Formation da assumere per vendere le credenziali ai motori di query analitici. Per le autorizzazioni richieste per il ruolo di accesso ai dati, consulta la sezione sui [step3-permissions](s3tables-catalog-prerequisites.md#step3-permissions) prerequisiti.   
![\[La schermata di abilitazione dell'integrazione di S3 con il ruolo IAM.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/enable-s3-table-catalog.png)

1.  Seleziona **Consenti ai motori esterni di accedere ai dati nelle posizioni Amazon S3 con l'opzione di accesso completo alla tabella**. Quando abiliti l'accesso completo alla tabella per i motori di terze parti, Lake Formation restituisce le credenziali direttamente al motore di terze parti senza eseguire la convalida dei tag di sessione IAM. Ciò significa che non è possibile applicare controlli di accesso granulari di Lake Formation alle tabelle a cui si accede. 

1. Scegli **Abilita **. Il nuovo catalogo per S3 Tables viene aggiunto all'elenco dei cataloghi. Quando abiliti l'integrazione del catalogo di tabelle S3, il servizio registra la posizione dei dati del bucket di tabelle S3 con Lake Formation.

1. Scegli il catalogo per visualizzare gli oggetti del catalogo e concedere le autorizzazioni ad altri principali.   
![\[Il catalogo di tabelle S3\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/s3-table-catalog.png)

   Per creare cataloghi a più livelli, consulta la sezione [Creazione di un bucket da tabella](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) nella Guida per l'utente di Amazon Simple Storage Service.

## Per integrare le tabelle Amazon S3 con Data Catalog e Lake Formation (CLI)
<a name="w2aac13c27c23b7b3"></a>

Seguendo la sezione dei prerequisiti, crea un ruolo di servizio IAM che consenta a Lake Formation di accedere alle risorse della tua tabella.

1. Creare un file denominato `Role-Trust-Policy.json` contenente la seguente policy di attendibilità:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
         {
           "Sid": "LakeFormationDataAccessPolicy",
           "Effect": "Allow",
           "Principal": {
             "Service": "lakeformation.amazonaws.com"
           },
           "Action": [
               "sts:AssumeRole",
               "sts:SetContext",
               "sts:SetSourceIdentity"
           ],
           "Condition": {
             "StringEquals": {
               "aws:SourceAccount": "111122223333"
             }
           }
         }
       ]
   }
   ```

1. Creare un ruolo di servizio IAM utilizzando il comando seguente:

   ```
   aws iam create-role \
     --role-name S3TablesRoleForLakeFormation \
     --assume-role-policy-document file://Role-Trust-Policy.json
   ```

1. Creare un file denominato `LF-GluePolicy.json` contenente la seguente policy:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "LakeFormationPermissionsForS3ListTableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:ListTableBuckets"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:CreateTableBucket",
                   "s3tables:GetTableBucket",
                   "s3tables:CreateNamespace",
                   "s3tables:GetNamespace",
                   "s3tables:ListNamespaces",
                   "s3tables:DeleteNamespace",
                   "s3tables:DeleteTableBucket",
                   "s3tables:CreateTable",
                   "s3tables:DeleteTable",
                   "s3tables:GetTable",
                   "s3tables:ListTables",
                   "s3tables:RenameTable",
                   "s3tables:UpdateTableMetadataLocation",
                   "s3tables:GetTableMetadataLocation",
                   "s3tables:GetTableData",
                   "s3tables:PutTableData"
               ],
               "Resource": [
                   "arn:aws:s3tables:us-east-1:111122223333:bucket/*"
               ]
           }
       ]
   }
   ```

1. Collegare la policy al ruolo utilizzando il comando seguente:

   ```
   aws iam put-role-policy \
     --role-name S3TablesRoleForLakeFormation \
     --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \
     --policy-document file://LF-GluePolicy.json
   ```

1. Creare un file denominato `input.json` contenente quanto segue:

   ```
   {
       "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*",
       "WithFederation": true,
       "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation"
   }
   ```

1. Registrare i bucket di tabelle con Lake Formation utilizzando il comando seguente:

   ```
   aws lakeformation register-resource \
     --region us-east-1 \
     --with-privileged-access \
     --cli-input-json file://input.json
   ```

1. Creare un file denominato `catalog.json` contenente il catalogo seguente:

   ```
   {
      "Name": "s3tablescatalog",
      "CatalogInput": {
         "FederatedCatalog": {
             "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*",
             "ConnectionName": "aws:s3tables"
          },
          "CreateDatabaseDefaultPermissions": [],
          "CreateTableDefaultPermissions": [],
          "AllowFullTableExternalDataAccess": "True"
      }
   }
   ```

1. Creare il catalogo `s3tablescatalog` utilizzando il comando seguente. La creazione di questo catalogo li popola AWS Glue Data Catalog con oggetti corrispondenti a bucket di tabelle, namespace e tabelle.

   ```
   aws glue create-catalog \
     --region us-east-1 \
     --cli-input-json file://catalog.json
   ```

1. Verificate che il `s3tablescatalog` catalogo sia stato aggiunto utilizzando il comando AWS Glue seguente:

   ```
   aws glue get-catalog --catalog-id s3tablescatalog
   ```

# Creazione di database e tabelle nel catalogo di tabelle S3
<a name="create-databases-tables-s3-catalog"></a>

 Puoi creare database per organizzare le tabelle Apache Iceberg e tabelle per definire lo schema e la posizione dei dati nel catalogo delle tabelle S3. 

## Crea un database (console)
<a name="w2aac13c27c25b5b1"></a>

1.  Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)e accedi come amministratore di data lake o creatore di database. 

1. Nel riquadro di navigazione, scegli **Database** in **Data Catalog**.

1. Scegliere **Crea database**.

1.  Nella pagina **Crea database**, scegli l'opzione **Database** e inserisci i seguenti dettagli: 
   + **Nome**: un nome univoco per il database
   + **Catalogo dati**: scegli il catalogo delle tabelle S3. Il database risiederà in questo catalogo.
   + **Descrizione**: (Facoltativo) Aggiungi una descrizione e una posizione. 
   + **Controllo di accesso IAM per nuove tabelle**: seleziona Facoltativamente Usa solo il controllo di accesso IAM per le nuove tabelle in questo database. Per informazioni su questa opzione, consulta la sezione [Modifica delle impostazioni predefinite per il tuo data lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html). 
   + Scegli **Crea database**. Puoi vedere il database creato nel catalogo delle tabelle S3.

## Crea un database usando AWS CLI
<a name="w2aac13c27c25b5b3"></a>

Il seguente comando CLI mostra come creare un database nel catalogo di tabelle S3.

```
aws glue create-database 
--region us-east-1 \
--catalog-id "123456789012:s3tablescatalog/test" \
--database-input \
 '{ "Name": "testglueclidbcreation" }'
```

## Crea una tabella ()Console di gestione AWS
<a name="w2aac13c27c25b5b5"></a>

 Puoi creare tabelle di metadati Apache Iceberg nel catalogo delle tabelle S3 utilizzando la console Lake Formation o l'API. AWS Glue `CreateTable` 

1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)e accedi come amministratore del data lake o utente con `CreateTable` autorizzazione.

1. Nel riquadro di navigazione, scegli **Tabelle** in Data Catalog.

1. Scegliere Create table (Crea tabella).

1. Nella pagina **Crea tabella**, inserisci i dettagli della tabella:  
![\[Il catalogo di tabelle S3\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/s3-catalog-create-table.png)
   + **Nome**: inserisci un nome univoco per la tabella.
   + **Catalogo**: scegli il catalogo delle tabelle S3 come catalogo.
   + **Database**: scegli il database nel catalogo delle tabelle S3.
   +  **Descrizione**: inserisci una descrizione per la tabella. 
   + **Schema**: scegli Aggiungi colonne per aggiungere colonne e tipi di dati delle colonne. Si dispone della possibilità di creare una tabella vuota e di aggiornare lo schema in un secondo momento. Iceberg consente di evolvere lo schema e la partizione dopo aver creato la tabella. È possibile usare le query di Athena per aggiornare lo schema della tabella e le query Spark per aggiornare le partizioni. 

1. Seleziona **Invia**.

## Crea una tabella (AWS CLI)
<a name="w2aac13c27c25b5b7"></a>

```
aws glue create-table \ 
--database-name "testglueclidbcreation" \ 
--catalog-id "123456789012:s3tablescatalog/test" \ 
--region us-east-1 \ 
--table-input \ 
'{ "Name": "testtablegluecli", "Parameters": { "format": "ICEBERG" }, "StorageDescriptor": { "Columns": [ {"Name": "x", "Type": "int", "Parameters": {"required": "true"}} ] } }'
```

# Registrazione di un bucket da tavolo Amazon S3 in un altro account AWS
<a name="register-cross-account-s3-table-bucket"></a>

Puoi registrare singoli table bucket Amazon S3 (formato ARN:`arn:aws:s3tables:us-east-1:account-id:bucket/bucket-name`) da un account con AWS Lake Formation in un altro account. Ad esempio, puoi registrare un table bucket dall'account A in Lake Formation dell'account B.

## Prerequisiti
<a name="w2aac13c27c27b5"></a>

Prima di iniziare la registrazione del bucket tra account:
+ Crea un bucket da tavolo nell'account A.
+ Crea un ruolo IAM nell'account B con le autorizzazioni appropriate per la registrazione del bucket.

  Per ulteriori informazioni sulle autorizzazioni necessarie per registrare un table bucket con Lake Formation, vedere. [Prerequisiti per l'integrazione del catalogo di tabelle Amazon S3 con Data Catalog e Lake Formation](s3tables-catalog-prerequisites.md)
+ Registra il table bucket nell'account in cui intendi creare il catalogo di tabelle S3.
+  Per l'accesso tra account diversi, il ruolo specificato al momento della registrazione del table bucket deve essere un ruolo interno all'account con le autorizzazioni appropriate per accedere al bucket tra account. Il ruolo richiede le azioni IAM di S3 Tables necessarie per accedere alle risorse del bucket.

## Registrazione di bucket di tabelle tra account
<a name="w2aac13c27c27b7"></a>

Nelle seguenti procedure, l'account A è l'account proprietario delle risorse e l'account B è il luogo in cui verrà registrato il table bucket per la gestione delle autorizzazioni di accesso.

1. Accedi all'account A. Console di gestione AWS 

   Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1.  Creare un bucket di tabelle. Per ulteriori informazioni, consulta [Creating a table bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) nella Amazon S3 User Guide. 

1. Registra il table bucket nell'account B.

   Usa il AWS CLI per registrare il table bucket dall'account A con Lake Formation nell'account B.

   ```
   aws lakeformation register-resource \
   --resource-arn 'arn:aws:s3tables:us-east-1:account-A-id:bucket/single-bucket-name' \
   --role-arn arn:aws:iam::account-B-id:role/role-name \
   --region us-east-1
   ```

   Sostituisci account-A-id single-bucket-name, account-B-id, e role-name con i tuoi valori specifici.

1. Quindi, crea un catalogo per il table bucket nell'account B.

   Crea un catalogo utilizzando. AWS CLI

   ```
   aws glue create-catalog --region us-east-1 \
   --cli-input-json \
   '{
      "Name": "catalog-name",
      "CatalogInput" : {
         "FederatedCatalog": {
            "Identifier": "arn:aws:s3tables:us-east-1:account A:bucket/single-bucket-name",
            "ConnectionName": "aws:s3tables"
         },
         "CreateDatabaseDefaultPermissions": [],
         "CreateTableDefaultPermissions": []      
      }
   }'
   ```

   Sostituisci catalog-name e bucket-name con i tuoi valori specifici. account-A-id

    L'esempio CLI seguente mostra come visualizzare i dettagli del catalogo. 

   ```
    aws glue get-catalog \
     --catalog-id account-id:catalog-name \
     --region us-east-1
   ```

1. Successivamente, crea database e tabelle nel catalogo appena creato nell'account B.

   Crea un database.

   ```
   aws glue create-database \
     --region us-east-1 \
     --catalog-id "account-B-id:catalog-name" \
     --database-input \
   '{
     "Name": "database-name"
   }'
   ```

   Creare una tabella.

   ```
   aws glue create-table \
     --database-name database-name \
     --catalog-id account-B-id:catalog-name\
     --region us-east-1 \
     --table-input \
     '{
           "Name": "table-name",
           "Parameters": {
               "format": "ICEBERG"
           },
           "StorageDescriptor": {
              "Columns": [
           {"Name": "x", "Type": "int", "Parameters": {"required": "true"}}
             ]
           }
   }'
   ```

   Sostituisci il nome del database account-B-id, il nome del catalogo e il nome della tabella con i tuoi valori specifici.

1. Gli esempi seguenti mostrano come visualizzare gli oggetti nel catalogo.

   Visualizza i dettagli del database.

   ```
   aws glue get-database \
     --name database-name \
     --catalog-id account-B-id:catalog-name \
     --region us-east-1
   ```

   Visualizza i dettagli della tabella.

   ```
   aws glue get-table \
     --name table-name \
     --database-name database-name \
     --catalog-id account-B-id:catalog-name \
     --region us-east-1
   ```

   Sostituisci il nome del database account-B-id, il nome del catalogo e il nome della tabella con i tuoi valori specifici.

# Concessione di autorizzazioni
<a name="s3-tables-grant-permissions"></a>

 Dopo aver integrato le tabelle S3 con AWS Lake Formation, puoi concedere le autorizzazioni sul catalogo di tabelle S3 e sugli oggetti del catalogo (table bucket, database, tabelle) ad altri ruoli e utenti IAM del tuo account. Le autorizzazioni di Lake Formation consentono di definire i controlli di accesso a livello di tabella, colonna e riga per gli utenti di motori analitici integrati come Amazon Redshift Spectrum e Athena. 

 È possibile concedere le autorizzazioni utilizzando il metodo named resource o il metodo di controllo degli accessi basato su tag Lake Formation (LF-TBAC). Prima di concedere le autorizzazioni utilizzando i tag LF e le espressioni dei tag LF, è necessario definirle e assegnarle agli oggetti del Data Catalog. 

Per ulteriori informazioni, consulta [Gestione dei tag LF per il controllo dell'accesso ai metadati](managing-tags.md).

Puoi condividere database e tabelle con AWS account esterni concedendo le autorizzazioni di Lake Formation agli account esterni. Gli utenti possono quindi eseguire query e lavori che uniscono e interrogano tabelle su più account. Quando condividi una risorsa del catalogo con un altro account, i responsabili di quell'account possono utilizzare quella risorsa come se la risorsa si trovasse nel loro catalogo dati. 

Quando condividi database e tabelle con account esterni, l'autorizzazione **Super user** non è disponibile. 

 Per istruzioni dettagliate sulla concessione delle autorizzazioni, consulta la [Gestione delle autorizzazioni di Lake Formation](managing-permissions.md) sezione. 

## AWS CLI esempio di concessione delle autorizzazioni su una tabella Amazon S3
<a name="w2aac13c27c29c15"></a>

```
aws lakeformation grant-permissions \
--cli-input-json \
'{
    "Principal": {
        "DataLakePrincipalIdentifier":"arn:aws:iam::111122223333:role/DataAnalystRole"
    },
    "Resource": {
        "Table": {
            "CatalogId":"111122223333:s3tablescatalog/amzn-s3-demo-bucket1",
            "DatabaseName":"S3 table bucket namespace <example_namespace>",
            "Name":"S3 table bucket table name <example_table>"
        }
    },
    "Permissions": [
        "SELECT"
    ]
}'
```

 Di seguito sono riportati i parametri da includere nel comando: 
+ DataLakePrincipalIdentifier — ARN di utenti, ruoli o gruppi IAM per concedere le autorizzazioni
+ CatalogId — ID dell' AWS account a 12 cifre che possiede il Data Catalog
+ DatabaseName — Nome dello spazio dei nomi del bucket di tabella Amazon S3
+ Nome: nome della tabella bucket di Amazon S3
+ Autorizzazioni: autorizzazioni da concedere. Le opzioni includono: SELECT, INSERT, DELETE, DESCRIBE, ALTER, DROP, ALLL e SUPER

# Accesso a tabelle Amazon S3 condivise
<a name="s3-tables-cross-account-sharing"></a>

 Dopo aver concesso le autorizzazioni per più account su un database o una tabella nel catalogo delle tabelle S3, per accedere alle risorse, devi creare collegamenti alle risorse ai database e alle tabelle condivisi. 

1.  Nell'account di destinazione (l'account che riceve le risorse condivise), crea un link alle risorse del database. Per istruzioni dettagliate, vedi [Creazione di un collegamento di risorsa a un database Data Catalog condiviso](create-resource-link-database.md). 

   Esempio CLI per la creazione di un collegamento a una risorsa del database

   ```
   aws glue create-database 
   --region us-east-1 
   --catalog-id "111122223333" 
   --database-input \
   '{
     "Name": "s3table_resourcelink",
     "TargetDatabase": {
       "CatalogId": "011426214932:s3tablescatalog/chmni-s3-table-bucket-011426214932",
       "DatabaseName": "s3_table_ns"
     },
     "CreateTableDefaultPermissions": []
   }'
   ```

1.  Concedi l'autorizzazione per più account sulla tabella. 

   Esempio CLI per la concessione di autorizzazioni tra account

   ```
   aws lakeformation grant-permissions \
   --region us-east-1 \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:role/S3TablesTestExecRole"
       },
       "Resource": {
           "Table": {
               "CatalogId": "011426214932:s3tablescatalog/chmni-s3-table-bucket-011426214932",
               "DatabaseName": "s3_table_ns",
               "Name": "test_s3_iceberg_table"
           }
       },
       "Permissions": [
           "ALL"
       ]
   }'
   ```

1.  Concedi `DESCRIBE` l'autorizzazione a Lake Formation sul link alla risorsa. 

    Esempio CLI per la concessione dell'autorizzazione alla descrizione sul collegamento alla risorsa. 

   ```
   aws lakeformation grant-permissions \
       --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/S3TablesTestExecRole
       --resource Database='{CatalogId=111122223333;, Name=s3table_resourcelink}' \
       --permissions DESCRIBE
   ```

# Modifica dei controlli di accesso per l'integrazione con S3 Tables
<a name="manage-s3tables-catalog-integration"></a>

Dopo aver integrato Amazon S3 Tables con AWS Glue Data Catalog, puoi modificare il modo in cui viene controllato l'accesso alle risorse del catalogo. Questa sezione spiega come modificare il controllo degli accessi in base al modello di controllo degli accessi attuale e desiderato. L'abilitazione di Lake Formation consente di utilizzare autorizzazioni dettagliate come la sicurezza a livello di colonna e di riga tramite le sovvenzioni di Lake Formation e consente a Lake Formation di vendere credenziali temporanee per conto dei mandanti tramite un ruolo registrato. La modifica del controllo degli accessi da IAM AWS Lake Formation a riporta il controllo degli accessi alle policy IAM standard, il che può essere appropriato se i carichi di lavoro non richiedono un accesso granulare e si preferisce gestire le autorizzazioni interamente tramite IAM. Entrambi i percorsi di migrazione prevedono l'aggiornamento delle impostazioni predefinite del Data Catalog, la modifica delle registrazioni delle risorse con Lake Formation e il coordinamento delle concessioni di autorizzazioni per evitare interruzioni di accesso durante la transizione.

**Topics**
+ [Abilita l'integrazione di Lake Formation con S3 Tables con Data Catalog](change-access-iam-to-lf.md)
+ [Cambia il controllo degli accessi da AWS Lake Formation a IAM](change-access-lf-to-iam.md)

# Abilita l'integrazione di Lake Formation con S3 Tables con Data Catalog
<a name="change-access-iam-to-lf"></a>

Questa sezione descrive il flusso di lavoro per migrare il controllo degli accessi dai privilegi IAM a IAM con AWS Lake Formation concessioni per Amazon S3 Tables integrate con. AWS Glue Data Catalog

**Importante**  
 AWS Lake Formation L'abilitazione del controllo degli accessi revocherà tutti gli accessi esistenti basati su IAM alle risorse di S3 Tables. Dopo aver completato la Fase 1, gli utenti e i ruoli che in precedenza accedevano ai dati tramite le autorizzazioni IAM perderanno immediatamente l'accesso. È necessario concedere le autorizzazioni a Lake Formation nello Step 2 prima che gli utenti possano nuovamente interrogare i dati. Pianifica questa migrazione durante una finestra di manutenzione e coordinati con il tuo team addetto ai dati.

## Prerequisiti
<a name="w2aac13c29b7b7"></a>

Per read/write accedere a S3 Tables, oltre alle autorizzazioni di Lake Formation, i principali necessitano anche dell'`lakeformation:GetDataAccess`autorizzazione IAM. Con questa autorizzazione, Lake Formation concede la richiesta di credenziali temporanee per accedere ai dati.

## Usando AWS CLI
<a name="w2aac13c29b7b9"></a>

1. **Passaggio 1: registra il bucket con Lake Formation utilizzando il ruolo IAM**

   Registra la risorsa S3 Tables con Lake Formation.
**Nota**  
Se hai un ruolo esistente, assicurati che l'accesso ibrido sia falso.

   ```
   aws lakeformation register-resource \
     --resource-arn "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*" \
     --role-arn "arn:aws:iam::AWSAccountID:role/service-role/LFAccessRole" \
     --with-federation
   ```

1. **Passaggio 2: Aggiorna il AWS Glue catalogo per abilitare il controllo degli accessi a Lake Formation**

   Aggiorna il catalogo con un `CreateDatabaseDefaultPermissions` comando vuoto e `CreateTableDefaultPermissions` (impostato su`[]`) e `OverwriteChildResourcePermissionsWithDefault` impostato su`Accept`. Ciò rimuove l'accesso basato su IAM da tutte le risorse secondarie esistenti e consente di gestire il catalogo e i suoi oggetti utilizzando le sovvenzioni di Lake Formation.

   ```
   aws glue update-catalog \
     --catalog-id "s3tablescatalog" \
     --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*",
           "ConnectionName": "aws:s3tables"
       },
       "CreateDatabaseDefaultPermissions": [],
       "CreateTableDefaultPermissions": [],
       "OverwriteChildResourcePermissionsWithDefault": "Accept",
       "AllowFullTableExternalDataAccess": "True"
     }'
   ```

1. **Passaggio 3: concedi le autorizzazioni di Lake Formation al tuo team di dati**

   Concedi le autorizzazioni di Lake Formation ai principali (ruoli, utenti o gruppi) che necessitano di accesso. Ad esempio, per concedere l'accesso in lettura alla tabella completa a un ruolo:

   ```
   aws lakeformation grant-permissions \
     --principal DataLakePrincipalIdentifier=arn:aws:iam::AWSAccountID:role/DataTeamRole \
     --resource '{
       "Table": {
           "CatalogId": "AWSAccountID",
           "DatabaseName": "s3tablescatalog/table-bucket-name/namespace",
           "TableWildcard": {}
       }
     }' \
     --permissions "SELECT" "DESCRIBE"
   ```

   Ripetere l'operazione per ogni combinazione principale e di risorse, se necessario.

# Cambia il controllo degli accessi da AWS Lake Formation a IAM
<a name="change-access-lf-to-iam"></a>

Questa sezione descrive il flusso di lavoro per modificare il controllo degli accessi dalle AWS Lake Formation concessioni ai privilegi IAM per le tabelle Amazon S3 integrate con. AWS Glue Data Catalog

**Importante**  
La modifica del controllo degli accessi dalle AWS Lake Formation sovvenzioni a IAM revocherà tutti gli accessi esistenti basati su Lake Formation alle risorse S3 Tables. Dopo aver completato la Fase 2, gli utenti e i ruoli che in precedenza avevano avuto accesso ai dati tramite le sovvenzioni di Lake Formation perderanno immediatamente l'accesso. È necessario concedere l'accesso a IAM nella fase 1 prima di aggiornare il catalogo. Pianifica questa migrazione durante una finestra di manutenzione e coordinati con il tuo team addetto ai dati.

**Importante**  
I controlli di accesso dettagliati, come l'accesso a livello di colonna e i filtri delle celle di dati, con oggetti Data Catalog sono disponibili solo quando vengono utilizzati. AWS Lake Formation Prima di procedere alla migrazione dei controlli di accesso da IAM, verifica AWS Lake Formation le sovvenzioni esistenti di Lake Formation utilizzando `aws lakeformation list-permissions` e determina se policy IAM equivalenti possono fornire l'accesso di cui i tuoi utenti hanno bisogno. Qualsiasi ente che si sia basato su sovvenzioni dettagliate di Lake Formation richiederà l'accesso IAM completo a livello di tabella dopo la migrazione del controllo degli accessi.

## Prerequisiti
<a name="w2aac13c29b9b9"></a>

Prima di iniziare, assicurati quanto segue:
+ Hai identificato tutte le sovvenzioni di Lake Formation attualmente in vigore per le risorse in fase di migrazione. Corri `aws lakeformation list-permissions --resource-type TABLE` a esaminarle.
+ Hai preparato delle policy IAM che forniscono un accesso equivalente a tutti i principali soggetti interessati.
+ Il ruolo IAM registrato presso Lake Formation è ancora valido `lakeformation:GetDataAccess` (necessario durante il periodo di transizione ibrida).

## Usando AWS CLI
<a name="w2aac13c29b9c11"></a>

1. **Fase 1: concedere le autorizzazioni IAM ai dirigenti**

   Allega le policy IAM agli utenti o ai ruoli che necessitano di accesso. La policy deve includere sia le autorizzazioni per i AWS Glue metadati che le autorizzazioni per i dati di S3 Tables.
**Nota**  
La politica di esempio seguente fornisce solo l'accesso in lettura.

   ```
   aws iam put-user-policy \
     --user-name GlueIAMAccessUser \
     --policy-name S3TablesIAMAccessPolicy \
     --policy-document '{
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "GlueMetadataAccess",
               "Effect": "Allow",
               "Action": [
                   "glue:GetCatalog",
                   "glue:GetDatabase",
                   "glue:GetTable"
               ],
               "Resource": [
                   "arn:aws:glue:us-east-1:AWSAccountID:catalog/s3tablescatalog",
                   "arn:aws:glue:us-east-1:AWSAccountID:database/s3tablescatalog/table-bucket-name/namespace",
                   "arn:aws:glue:us-east-1:AWSAccountID:table/s3tablescatalog/table-bucket-name/namespace/*"
               ]
           },
           {
               "Sid": "S3TablesDataAccess",
               "Effect": "Allow",
               "Action": [
                   "s3tables:GetTableBucket",
                   "s3tables:GetTable",
                   "s3tables:GetTableMetadataLocation",
                   "s3tables:GetTableData"
               ],
               "Resource": [
                   "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/table-bucket-name",
                   "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/table-bucket-name/table/*"
               ]
           }
       ]
     }'
   ```

   Verifica che tutti gli utenti e i ruoli interessati possano accedere alle tabelle previste utilizzando le proprie credenziali IAM prima di procedere.

1. **Passaggio 2: aggiorna il catalogo per ripristinare le autorizzazioni predefinite di IAM**

   Aggiorna il catalogo in questo modo `CreateDatabaseDefaultPermissions` e `CreateTableDefaultPermissions` concedi `ALL` a`IAM_ALLOWED_PRINCIPALS`. Imposta `Accept` in `OverwriteChildResourcePermissionsWithDefault` modo che la modifica si propaghi a tutte le risorse secondarie esistenti, non solo a quelle appena create.

   ```
   aws glue update-catalog \
     --catalog-id "s3tablescatalog" \
     --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*",
           "ConnectionName": "aws:s3tables"
       },
       "CreateDatabaseDefaultPermissions": [{
           "Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"},
           "Permissions": ["ALL"]
       }],
       "CreateTableDefaultPermissions": [{
           "Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"},
           "Permissions": ["ALL"]
       }],
       "OverwriteChildResourcePermissionsWithDefault": "Accept"
     }'
   ```

1. **Fase 3: Annullare la registrazione della risorsa da Lake Formation**

   Dopo aver verificato che tutti gli accessi funzionano secondo le policy IAM e che nessun committente dipende dalle sovvenzioni di Lake Formation, puoi annullare la registrazione della risorsa da Lake Formation per completare la migrazione.

   ```
   aws lakeformation deregister-resource \
     --resource-arn "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*"
   ```
**Nota**  
Dopo aver annullato la registrazione della risorsa, rimuovi `lakeformation:GetDataAccess` dai principali IAM che non ne hanno più bisogno.

Non è richiesto alcun `revoke-permissions` passaggio.

# Creazione di un catalogo gestito di Amazon Redshift nel AWS Glue Data Catalog
<a name="create-rms-catalog"></a>

 Forse non disponi attualmente di un cluster di produttori Amazon Redshift o di un datashare Amazon Redshift, ma desideri creare e gestire tabelle Amazon Redshift utilizzando il. AWS Glue Data Catalog Puoi iniziare creando un catalogo AWS Glue gestito utilizzando l'`glue:CreateCatalog`API o la AWS Lake Formation console impostando il tipo di catalogo come `Managed` e `Catalog source` come **Redshift**. Questo passaggio esegue le seguenti operazioni:
+ Crea un catalogo nel Data Catalog
+ Registra il catalogo come posizione dati di Lake Formation
+ crea un gruppo di lavoro serverless gestito da Amazon Redshift
+ Collega il gruppo di lavoro serverless Amazon Redshift e il Data Catalog utilizzando un oggetto datashare

**Per creare un catalogo gestito e configurare le autorizzazioni (console)**

1. Apri la console Lake Formation all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Nel riquadro di navigazione, scegli **Catalogs** in **Data Catalog**.

1. Seleziona l'opzione **Crea catalogo**. 

1. Nella pagina dei dettagli di **Set Catalog**, inserite le seguenti informazioni: 
   + **Nome**: un nome univoco per il catalogo gestito. Il nome non può essere modificato e deve essere scritto in minuscolo. Il nome può essere composto da un massimo di 255 caratteri. account. 
   + **Tipo**: scegli `Managed catalog` come tipo di catalogo.
   + **Archiviazione**: scegli `Redshift` l'archiviazione.
   + **Descrizione**: immetti una descrizione per il catalogo creato dalla fonte di dati.

1. Puoi utilizzare le applicazioni Apache Spark in esecuzione su Amazon EMR su Amazon EC2 per accedere ai database Amazon Redshift in. AWS Glue Data Catalog

   Per consentire ad Apache Spark di leggere e scrivere sullo storage gestito di Amazon Redshift AWS Glue , crea un cluster Amazon Redshift gestito con le risorse di calcolo e storage necessarie per eseguire operazioni di lettura e scrittura senza influire sui carichi di lavoro del data warehouse di Amazon Redshift. È inoltre necessario fornire a un ruolo IAM le autorizzazioni necessarie per trasferire dati da e verso il bucket Amazon S3. Per le autorizzazioni richieste per il ruolo di trasferimento dei dati, consulta il passaggio 5 nella sezione. [Prerequisiti per la gestione dei namespace di Amazon Redshift nel AWS Glue Data Catalog](redshift-ns-prereqs.md) 

1. Per impostazione predefinita, i dati nel cluster Amazon Redshift sono crittografati utilizzando una chiave AWS gestita. Lake Formation offre un’opzione per creare una chiave KMS personalizzata per la crittografia. Se utilizzi una chiave gestita dal cliente, devi aggiungere politiche chiave specifiche alla chiave. 

1.  Scegli Personalizza le impostazioni di crittografia se utilizzi una chiave gestita dal cliente per crittografare i dati nello storage gestito di Amazon Redshift. Per utilizzare una chiave personalizzata, è necessario aggiungere una policy della chiave gestita personalizzata alla propria chiave KMS. Per ulteriori informazioni, consulta [Prerequisiti per la gestione dei namespace di Amazon Redshift nel AWS Glue Data Catalog](redshift-ns-prereqs.md).

1. **Opzioni di crittografia**: scegli l'opzione **Personalizza le impostazioni di crittografia** se desideri utilizzare una chiave personalizzata per crittografare il catalogo. Per utilizzare una chiave personalizzata, è necessario aggiungere una policy della chiave gestita personalizzata alla propria chiave KMS. 

1. Scegli **Avanti** per concedere le autorizzazioni ad altri principali. 

1. **Nella pagina **Concedi autorizzazioni**, scegli Aggiungi autorizzazioni.**

1.  Nella schermata **Aggiungi autorizzazioni**, scegli i principali e i tipi di autorizzazioni da concedere.   
![\[La pagina delle autorizzazioni del catalogo con le opzioni principali di tipo e concessione.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/catalog-permissions.png)
   +  Nella sezione **Principali**, scegli un tipo di principale e quindi specifica i principali per concedere le autorizzazioni. 
     + **Utenti e ruoli IAM**: scegli uno o più utenti o ruoli dall’elenco degli utenti e dei ruoli IAM.
     + **Utenti e gruppi SAML**: per SAML e Amazon Quick utenti e gruppi, inserisci uno o più Amazon Resource Names (ARNs) per utenti o gruppi federati tramite SAML o per utenti o gruppi ARNs Amazon Quick. Premi **Invio** dopo ogni ARN.

       Per informazioni su come costruire i comandi grant and ARNs revoke. AWS CLI AWS CLI 
   +  Nella sezione **Autorizzazioni**, seleziona le autorizzazioni e le autorizzazioni concedibili.

     In **Autorizzazioni del catalogo**, seleziona una o più autorizzazioni da concedere.

     Scegli **Super utente** per concedere autorizzazioni amministrative illimitate su tutte le risorse all’interno del catalogo.

      In Autorizzazioni **concedibili, seleziona le autorizzazioni che il destinatario della sovvenzione** può concedere agli altri responsabili del proprio account. AWS Questa opzione non è supportata quando si concedono autorizzazioni a un principale IAM da un account esterno. 

1. Scegli **Avanti** per esaminare le informazioni e creare il catalogo. L'elenco dei **cataloghi** mostra il nuovo catalogo gestito.

**Per creare un catalogo federato (CLI)**
+  L'esempio seguente mostra come creare un catalogo federato. 

  ```
  aws glue create-catalog --cli-input-json file://input.json
  
  {
      "Name": "CatalogName", 
      "CatalogInput": {
        "Description": "Redshift published Catalog",
        "CreateDatabaseDefaultPermissions" : [],
        "CreateTableDefaultPermissions": [],
        "CatalogProperties": {
          "DataLakeAccessProperties" : {
            "DataLakeAccess" : "true",
            "DataTransferRole" : "DTR arn",
            "KMSKey": "kms key arn",  // Optional
            "CatalogType": "aws:redshift"
          }  
        }
      }
  }
  ```

  Glue get-catalog response 

  ```
  aws glue get-catalog \
    --catalog-id account-id:catalog-name \
    --region us-east-1
  
  Response:
  {
      "Catalog": {
          "Name": "CatalogName", 
          "Description": "Glue Catalog for Redshift z-etl use case",
          "CreateDatabaseDefaultPermissions" : [],
          "CreateTableDefaultPermissions": [],
           "CatalogProperties": {
            "DataLakeAccessProperties" : {
              "DataLakeAccess": "true",
              "DataTransferRole": "DTR arn",
              "KMSKey": "kms key arn",
              "ManagedWorkgroupName": "MWG name",
              "ManagedWorkgroupStatus": "MWG status",
              "RedshiftDatabaseName": "RS db name",
              "NamespaceArn": "namespace key arn",
              "CatalogType": "aws:redshift"
           }
         }
      }
  ```

# Gestione delle autorizzazioni per i dati in un datashare Amazon Redshift
<a name="data-sharing-redshift"></a>

Con AWS Lake Formation, puoi gestire i dati in modo sicuro in un datashare di Amazon Redshift. Amazon Redshift è un servizio di data warehouse completamente gestito su scala di petabyte nel cloud. AWS Utilizzando la funzionalità di condivisione dei dati, Amazon Redshift ti aiuta a condividere i dati tra di loro. Account AWS Per ulteriori informazioni sulla condivisione dei dati di Amazon Redshift, consulta [Panoramica sulla condivisione dei dati in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/data_sharing_intro.html). 

In Amazon Redshift, l'amministratore del cluster di produttori crea un datashare e lo condivide con l'amministratore del data lake. Per step-by-step istruzioni sulla creazione di un amministratore di data lake, consulta. [Crea un amministratore del data lake](initial-lf-config.md#create-data-lake-admin) 

Dopo che l'amministratore del data lake ha accettato il datashare, è necessario creare un AWS Glue Data Catalog database per il datashare specifico. In questo modo puoi controllarne l'accesso utilizzando le autorizzazioni di Lake Formation. Lake Formation mappa ogni datashare su un database Data Catalog corrispondente. Questi vengono visualizzati come database federati nel Data Catalog. 

Un database viene definito *database federato* quando punta a un'entità esterna al Data Catalog. Le tabelle e le viste nel datashare Amazon Redshift sono elencate come singole tabelle nel Data Catalog. Puoi condividere il database federato con i principali IAM e gli utenti SAML selezionati all'interno dello stesso account o in un altro account con Lake Formation. Puoi anche includere espressioni di filtro per righe e colonne per limitare l'accesso a determinati dati. Per ulteriori informazioni, consulta [Filtraggio dei dati e sicurezza a livello di cella in Lake Formation](data-filtering.md). 

 Per fornire agli utenti l'accesso a un datashare Amazon Redshift, devi fare quanto segue:

1. Aggiorna **le impostazioni del Data Catalog** per abilitare le autorizzazioni di Lake Formation. 

1. Accetta l'invito al datashare dall'amministratore del cluster di produttori di Amazon Redshift e registra il datashare in Lake Formation.

   Dopo aver completato questo passaggio, puoi gestire il datashare all'interno del Lake Formation Data Catalog. 

1. Crea un database federato e definisci le autorizzazioni su quel database. 

1. Concedi le autorizzazioni agli utenti su database e tabelle. Puoi condividere l'intero database o un sottoinsieme di tabelle con gli utenti dello stesso account o di un altro account. 

Per le limitazioni, consulta [Limitazioni della condivisione dei dati di Amazon Redshift](notes-rs-datashare.md).

**Topics**
+ [Prerequisiti per la configurazione delle autorizzazioni sulle condivisioni di dati Amazon Redshift](redshift-ds-prereqs.md)
+ [Configurazione delle autorizzazioni per le condivisioni di dati Amazon Redshift](setup-ds-perms.md)
+ [Interrogazione di database federati](qerying-fed-db.md)

# Prerequisiti per la configurazione delle autorizzazioni sulle condivisioni di dati Amazon Redshift
<a name="redshift-ds-prereqs"></a>

**Aggiorna le impostazioni predefinite del Data Catalog**  
Per abilitare le autorizzazioni Lake Formation per le risorse Data Catalog, ti consigliamo di disabilitare **le impostazioni predefinite del Data Catalog** in Lake Formation. Per ulteriori informazioni, consulta [Modifica il modello di autorizzazione predefinito o utilizza la modalità di accesso ibrida](initial-lf-config.md#setup-change-cat-settings).

**Aggiorna le autorizzazioni**  
 Oltre alle autorizzazioni di amministratore del data lake (`AWSLakeFormationDataAdmin`), sono necessarie anche le seguenti autorizzazioni per accettare un datashare Amazon Redshift in Lake Formation:
+ `glue:PassConnection on aws:redshift`
+ `redshift:AssociateDataShareConsumer`
+ `redshift:DescribeDataSharesForConsumer`
+ `redshift:DescribeDataShares`

L'utente IAM dell'amministratore del data lake dispone implicitamente delle seguenti autorizzazioni.
+ data\$1location\$1access
+ creare\$1database 
+ Lake Formation: registra la risorsa

# Configurazione delle autorizzazioni per le condivisioni di dati Amazon Redshift
<a name="setup-ds-perms"></a>

 Questo argomento descrive i passaggi da seguire per accettare un invito alla condivisione di dati, creare un database federato e concedere le autorizzazioni. Puoi usare la console Lake Formation o il AWS Command Line Interface (AWS CLI). Gli esempi in questo argomento mostrano il cluster di produttori, il Data Catalog e il consumatore di dati nello stesso account.

Per ulteriori informazioni sulle funzionalità cross-account di Lake Formation, consulta[Condivisione dei dati tra account in Lake Formation](cross-account-permissions.md).

**Per configurare le autorizzazioni per un datashare**

1. Rivedi un invito al datashare e accettalo.

------
#### [ Console ]

   1.  Accedi alla console di Lake Formation come amministratore del data lake all'indirizzo [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/). Vai alla pagina di **condivisione dei dati**. 

   1. Controlla le condivisioni di dati a cui sei autorizzato ad accedere. La colonna **Stato** indica il tuo attuale stato di partecipazione al datashare. Lo stato **In sospeso** indica che sei stato aggiunto a un datashare, ma non l'hai ancora accettato o hai rifiutato l'invito. 

   1.  **Per rispondere a un invito al datashare, seleziona il nome del datashare e scegli Rivedi l'invito.** In **Accetta o rifiuta il datashare**, esamina i dettagli dell'invito. Scegli **Accetta** per accettare l'invito o **Rifiuta per rifiutarlo**. Non avrai accesso al datashare se rifiuti l'invito.

------
#### [ AWS CLI ]

   Gli esempi seguenti mostrano come visualizzare, accettare e registrare l'invito. Sostituisci l' Account AWS ID con un Account AWS ID valido. Sostituisci `data-share-arn` con l'effettivo Amazon Resource Name (ARN) che fa riferimento al datashare.

   1. Visualizza un invito in sospeso.

      ```
      aws redshift describe-data-shares \
       --data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
      ```

   1. Accetta un datashare.

      ```
       aws redshift associate-data-share-consumer \
       --data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
       --consumer-arn 'arn:aws:glue:us-east-1:111122223333:catalog
      ```

   1. Registra il datashare nell'account Lake Formation. Utilizza l'operazione [RegisterResource](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_RegisterResource.html)API per registrare il datashare in Lake Formation. `DataShareArn`è il parametro di input per. `ResourceArn`
**Nota**  
Si tratta di un passaggio obbligatorio.

      ```
      aws lakeformation register-resource \
       --resource-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds'
      ```

------

1. Crea un database.

    Dopo aver accettato un invito alla condivisione di dati, devi creare un database che punti al database Amazon Redshift associato al datashare. Devi essere un amministratore di data lake per creare un database. 

------
#### [ Console ]

   1.  Seleziona il datashare dal riquadro **Inviti** e scegli **Imposta** i dettagli del database. 

   1.  In **Imposta i dettagli del database**, inserisci un nome e un identificatore univoci per il datashare. Questo identificatore viene utilizzato per mappare il datashare internamente nella gerarchia dei metadati (dbname.schema.table). 

   1.  Scegli **Avanti** per concedere le autorizzazioni ad altri utenti sul database e sulle tabelle condivisi. 

------
#### [ AWS CLI ]

    Utilizza il codice di esempio seguente per creare un database che punti al database Amazon Redshift condiviso con Lake Formation utilizzando il. AWS CLI

   ```
   aws glue create-database --cli-input-json \
   
   '{
    "CatalogId": "111122223333",
    "DatabaseInput": {
     "Name": "tahoedb",
     "FederatedDatabase": {
          "Identifier": "arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds",
          "ConnectionName": "aws:redshift"
      }
    }
    }'
   ```

------

1. Concedi i permessi.

    Dopo aver creato il database, puoi concedere le autorizzazioni agli utenti del tuo account o a organizzazioni esterne Account AWS . Non potrai concedere autorizzazioni per i dati di scrittura (inserimento, eliminazione) e per i metadati (modifica, eliminazione, creazione) sul database federato mappato su un datashare Amazon Redshift. Per ulteriori informazioni sulla concessione delle autorizzazioni, consulta. [Gestione delle autorizzazioni di Lake Formation](managing-permissions.md)
**Nota**  
In qualità di amministratore del data lake, puoi visualizzare solo le tabelle nei database federati. Per eseguire qualsiasi altra azione, è necessario concedere ulteriori autorizzazioni su tali tabelle.

------
#### [ Console ]

   1. Nella schermata **Concedi autorizzazioni**, seleziona gli utenti a cui concedere le autorizzazioni.

   1. Scegli **Concessione**. 

------
#### [ AWS CLI ]

   Utilizza gli esempi seguenti per concedere le autorizzazioni per database e tabelle utilizzando: AWS CLI

   ```
   aws lakeformation grant-permissions --input-cli-json file://input.json
   
   {
      "Principal": {
              "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
      },
      "Resource": {
             "Database": {
                   "CatalogId": "111122223333",
                    "Name": "tahoedb"
              }
       },
       "Permissions": [
                "DESCRIBE"
        ],
       "PermissionsWithGrantOption": [
                            
        ]
    }
   ```

   ```
   aws lakeformation grant-permissions --input-cli-json file://input.json
   
   {
                      "Principal": {
                             "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
                      },
                     "Resource": {
                            "Table": {
                                 "CatalogId": "111122223333",
                                 "DatabaseName": "tahoedb",
                                 "Name": "public.customer"
                          }
                     },
                    "Permissions": [
                           "SELECT"
                     ],
                    "PermissionsWithGrantOption": [
                            "SELECT"
                      ]
    }
   ```

------

# Interrogazione di database federati
<a name="qerying-fed-db"></a>

 Dopo aver concesso le autorizzazioni, gli utenti possono accedere e iniziare a interrogare il database federato utilizzando Amazon Redshift. Gli utenti possono ora utilizzare il nome del database locale per fare riferimento al datashare Amazon Redshift nelle query SQL. In Amazon Redshift, la tabella clienti nello schema pubblico condiviso tramite il datashare avrà una tabella corrispondente creata come `public.customer` nel Data Catalog.

1. Prima di interrogare il database federato utilizzando Amazon Redshift, l'amministratore del cluster crea un database dal database Data Catalog utilizzando il seguente comando: 

   ```
   CREATE DATABASE sharedcustomerdb FROM ARN 'arn:aws:glue:<region>:111122223333:database/tahoedb' WITH DATA CATALOG SCHEMA tahoedb
   ```

1.  L'amministratore del cluster concede le autorizzazioni di utilizzo sul database.

   ```
   GRANT USAGE ON DATABASE sharedcustomerdb TO IAM:user;
   ```

1.  L'utente federato può ora accedere agli strumenti SQL per interrogare la tabella. 

   ```
   Select * from sharedcustomerdb.public.customer limit 10;
   ```

 Per ulteriori informazioni, consulta la sezione [Querying AWS Glue Data Catalog](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-glue.html) in Amazon Redshift Management Guide. 

# Gestione delle autorizzazioni sui set di dati che utilizzano metastore esterni
<a name="data-sharing-hms"></a>

Con la federazione dei AWS Glue Data Catalog metadati (Data Catalog federation), puoi connettere il Data Catalog a metastore esterni che archiviano i metadati per i tuoi dati Amazon S3 e gestire in modo sicuro le autorizzazioni di accesso ai dati utilizzando. AWS Lake Formation Non è necessario migrare i metadati dal metastore esterno al Data Catalog.

Il Data Catalog fornisce un archivio centralizzato di metadati che semplifica la gestione e la scoperta dei dati su sistemi diversi. Quando la tua organizzazione gestisce i dati nel catalogo dati, puoi utilizzarli AWS Lake Formation per controllare l'accesso ai tuoi set di dati in Amazon S3.

**Nota**  
Attualmente, supportiamo solo la federazione dei metastore di Apache Hive (versione 3 e successive).

[Per configurare la federazione di Data Catalog, forniamo un'applicazione AWS Serverless Application Model (AWS SAM) chiamata GlueDataCatalogFederation - in. HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) AWS Serverless Application Repository

L'implementazione di riferimento è fornita GitHub come progetto open source presso [AWS Glue Data Catalog Federation - Hive Metastore](https://github.com/awslabs/aws-glue-data-catalog-federation).

L' AWS SAM applicazione crea e distribuisce le seguenti risorse necessarie per connettere il Data Catalog al metastore Hive:
+ **Una AWS Lambda funzione**: ospita l'implementazione del servizio federativo che comunica tra il Data Catalog e il metastore Hive. AWS Glue richiama questa funzione Lambda per recuperare oggetti di metadati dal metastore Hive.
+ **Amazon API Gateway**— L'endpoint di connessione per il metastore Hive che funge da proxy per indirizzare tutte le chiamate alla funzione Lambda. 
+ **Un ruolo IAM: un ruolo** con le autorizzazioni necessarie per creare la connessione tra il Data Catalog e il metastore Hive.
+ **AWS Glue connessione**: un Amazon API Gateway tipo di AWS Glue connessione che memorizza l' Amazon API Gateway endpoint e un ruolo IAM per richiamarlo. 

Quando esegui una query sulle tabelle, il AWS Glue servizio effettua una chiamata di runtime al metastore Hive e recupera i metadati. La funzione Lambda funge da traduttore tra il metastore Hive e Data Catalog. 

Dopo aver stabilito la connessione, per sincronizzare i metadati nel metastore Hive con il Data Catalog, è necessario creare un database *federato nel Data Catalog utilizzando i dettagli di connessione del metastore Hive e mappare questo database* al database Hive. Un database viene definito database federato quando punta a un'entità esterna al Data Catalog.

Puoi applicare le autorizzazioni di Lake Formation utilizzando il controllo degli accessi basato su tag e il metodo della risorsa denominata sul database federato e condividerlo tra più Account AWS unità organizzative (). AWS Organizations OUs Puoi anche condividere il database federato direttamente con i responsabili IAM di un altro account.

 Puoi definire autorizzazioni dettagliate a livello di colonna, riga e cella utilizzando i filtri dati di Lake Formation sulle tabelle Hive esterne. Puoi usare Amazon Athena, Amazon Redshift o Amazon EMR per interrogare le tabelle Hive esterne gestite da Lake Formation.

Per ulteriori informazioni sulla condivisione e il filtraggio dei dati tra account, consulta:
+ [Condivisione dei dati tra account in Lake Formation](cross-account-permissions.md)
+ [Filtraggio dei dati e sicurezza a livello di cella in Lake Formation](data-filtering.md)

**Fasi di alto livello per la federazione dei metadati di Data Catalog**

1. Crei utenti e ruoli IAM con le autorizzazioni appropriate per distribuire l' AWS SAM applicazione e creare database federati.

1. Registri la posizione dei dati di Amazon S3 con Lake Formation selezionando l'`Enable Data Catalog federation`opzione per i set di dati che utilizzano un metastore Hive esterno. 

1. È possibile configurare le impostazioni AWS SAM dell'applicazione (nome della AWS Glue connessione, URL del metastore Hive e parametri della funzione Lambda) e distribuire l'applicazione. AWS SAM 

1. L' AWS SAM applicazione distribuisce le risorse necessarie per connettere il metastore Hive esterno al Data Catalog. 

1. Per applicare le autorizzazioni di Lake Formation al database e alle tabelle Hive, crei un database nel Data Catalog utilizzando i dettagli di connessione del metastore Hive e mappi questo database al database Hive.

1. Concedi le autorizzazioni sui database federati ai responsabili del tuo account o di un altro account. 

**Nota**  
Puoi connettere il Data Catalog a un mestastore Hive esterno, creare database federati ed eseguire query e script ETL su database e tabelle Hive senza applicare le autorizzazioni di Lake Formation. Per i dati di origine in Amazon S3 che non sono registrati con Lake Formation, l'accesso è determinato dalle politiche di autorizzazione IAM per Amazon S3 e dalle azioni. AWS Glue 

Per le limitazioni, consulta [I metadati di Hive archiviano: considerazioni e limitazioni sulla condivisione dei dati](notes-hms.md).

**Topics**
+ [Flusso di lavoro](#hms-workflow)
+ [Prerequisiti per connettere il Data Catalog al metastore Hive](hms-prerequisites.md)
+ [Connessione del Data Catalog a un metastore Hive esterno](hms-setup.md)
+ [Risorse aggiuntive](additional-resources-hms.md)

## Flusso di lavoro
<a name="hms-workflow"></a>

Il diagramma seguente mostra il flusso di lavoro per la connessione di un metastore AWS Glue Data Catalog Hive esterno.

![\[Workflow diagram showing Hive metastore connection to AWS Glue Data Catalog with numbered steps.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/hms-workflow.png)


1. Un principale invia una richiesta utilizzando un servizio integrato come Athena o Redshift Spectrum.

1. Il servizio integrato effettua una chiamata al Data Catalog per i metadati, che a sua volta richiama l'endpoint Hive metastore disponibile e riceve risposte alle Amazon API Gateway richieste di metadati.

1. Il servizio integrato invia la richiesta a Lake Formation per verificare le informazioni sulla tabella e le credenziali per accedere alla tabella.

1.  Lake Formation autorizza la richiesta e invia credenziali temporanee all'applicazione integrata, che consente l'accesso ai dati. 

1. Utilizzando le credenziali temporanee ricevute da Lake Formation, il servizio integrato legge i dati da Amazon S3 e condivide i risultati con il responsabile.

# Prerequisiti per connettere il Data Catalog al metastore Hive
<a name="hms-prerequisites"></a>

Per connetterlo AWS Glue Data Catalog a un metastore Apache Hive esterno e configurare le autorizzazioni di accesso ai dati, è necessario soddisfare i seguenti requisiti:
**Nota**  
Consigliamo che un amministratore di Lake Formation distribuisca l' AWS SAM applicazione e solo un utente privilegiato utilizzi la connessione metastore Hive per creare i database federati corrispondenti.

1. 

**Creare ruoli IAM.**

**Per distribuire l'applicazione AWS SAM**
   + Crea un ruolo con le autorizzazioni necessarie per la distribuzione delle risorse (funzione Lambda Amazon API Gateway, ruolo IAM e AWS Glue connessione) necessarie per creare una connessione al metastore Hive.

**Per creare database federati**

   Le seguenti autorizzazioni sono richieste per le risorse:
   + `glue:CreateDatabase on resource arn:aws:glue:region:account-id:database/gluedatabasename`
   + `glue:PassConnection on resource arn:aws:glue:region:account-id:connection/hms_connection`

1. 

**Registra la sede Amazon S3 con Lake Formation.**

   Per utilizzare Lake Formation per gestire e proteggere i dati nel tuo data lake, devi registrare la posizione Amazon S3 che contiene i dati per le tabelle nel metastore Hive con Lake Formation. In questo modo, Lake Formation può fornire credenziali per servizi di AWS analisi come Athena, Redshift Spectrum e Amazon EMR.

   Per ulteriori informazioni sulla registrazione di una sede Amazon S3, consulta. [Aggiungere una posizione Amazon S3 al tuo data lake](register-data-lake.md)

   Quando registri la posizione Amazon S3, seleziona la casella di controllo **Enable Data Catalog Federation** per consentire a Lake Formation di assumere un ruolo per accedere alle tabelle in un database federato.  
![\[Register location form for AWS Lake Formation with Amazon S3 path and IAM role options.\]](http://docs.aws.amazon.com/it_it/lake-formation/latest/dg/images/hms-register-s3.png)

   Per ulteriori informazioni sulla registrazione di una posizione dati con Lake Formation, vedere[Configura una posizione Amazon S3 per il tuo data lake](initial-lf-config.md#register-s3-location).

1. 

**Usa la versione corretta di Amazon EMR.**

   Per utilizzare Amazon EMR con i database metastore Hive federati, devi disporre della versione 3.x o successiva di Hive e della versione 6.x o successiva di Amazon EMR.

# Connessione del Data Catalog a un metastore Hive esterno
<a name="hms-setup"></a>

[Per connetterlo AWS Glue Data Catalog a un metastore Hive, devi distribuire un'applicazione chiamata -. AWS SAM GlueDataCatalogFederation HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) Crea le risorse necessarie per connettere il metastore Hive esterno al Data Catalog. È possibile accedere all' AWS SAM applicazione in. AWS Serverless Application Repository

L' AWS SAM applicazione crea la connessione per il metastore Hive dietro Amazon API Gateway utilizzando una funzione Lambda. L' AWS SAM applicazione utilizza un URI (Uniform Resource Identifier) come input dell'utente e collega il metastore Hive esterno al Data Catalog. Quando un utente esegue una query sulle tabelle Hive, il Data Catalog chiama l'endpoint API Gateway. L'endpoint richiama la funzione Lambda per recuperare i metadati delle tabelle Hive.

**Per connettere il Data Catalog al metastore Hive e configurare le autorizzazioni**

1. 

**Distribuisci l'applicazione. AWS SAM**

   1. Accedi a Console di gestione AWS e apri il AWS Serverless Application Repository.

   1. Nel pannello di navigazione, scegli **Available applications (Applicazioni disponibili)**.

   1. Scegli **Applicazioni pubbliche**.

   1. Seleziona l'opzione **Visualizzare le app che creano ruoli IAM personalizzati o policy delle risorse**. 

   1. Nella casella di ricerca, inserisci il nome **GlueDataCatalogFederation- HiveMetastore**. 

   1. Scegli l'HiveMetastoreapplicazione **GlueDataCatalogFederation-**.

   1. In **Impostazioni dell'applicazione**, inserisci le seguenti impostazioni minime richieste per la tua funzione Lambda:
      + **Nome dell'applicazione**: un nome per l' AWS SAM applicazione.
      + **GlueConnectionName**- Un nome per la connessione.
      + **HiveMetastoreURIs**- L'URI del tuo host metastore Hive.
      + **LambdaMemory**- La quantità di memoria Lambda in MB è compresa tra 128 e 10240. Il valore di default è 1024.
      + **LambdaTimeout**- La durata massima di invocazione Lambda in secondi. Il valore predefinito è 30.
      + **VPCSecurityGroupIds**e **VPCSubnetIds**: informazioni per il VPC in cui esiste il metastore Hive.

   1. Seleziona **I acknowledge that this app creates custom IAM roles and resource policies** (Sono consapevole che questa app crea ruoli IAM personalizzati e policy della risorsa). Per ulteriori informazioni, scegliere il link **Info (Informazioni)** .

   1. Nella parte inferiore destra della pagina **Application settings** (Impostazioni dell'applicazione), scegli **Deploy** (Implementa). Al termine dell'implementazione, la funzione Lambda viene visualizzata nella sezione **Resources** (Risorse) nella console Lambda.

    L'applicazione viene distribuita su Lambda. Il suo nome è preceduto da **serverlessrepo-** per indicare che l'applicazione è stata distribuita da. AWS Serverless Application Repository Selezionando l'applicazione si accede alla pagina **Risorse** in cui sono elencate tutte le risorse dell'applicazione che sono state distribuite. Le risorse includono la funzione Lambda che consente la comunicazione tra il Data Catalog e il metastore Hive, la AWS Glue connessione e altre risorse necessarie per la federazione del database. 

1. 

**Crea un database federato nel Data Catalog.**

   Dopo aver creato una connessione al metastore Hive, puoi creare database federati nel Data Catalog che puntano ai database metastore Hive esterni. Devi creare un database corrispondente nel Data Catalog per ogni database di metastore Hive che stai connettendo al Data Catalog. 

------
#### [ Lake Formation console ]

   1. **Nella pagina **Condivisione dati**, scegli la scheda **Database condivisi, quindi scegli Crea database**.**

   1. Per **Nome della connessione**, scegli il nome della tua connessione al metastore Hive dal menu a discesa.

   1. Inserisci un nome di database univoco e l'identificatore di origine della federazione per il database. Questo è il nome che usi nelle istruzioni SQL quando esegui query sulle tabelle. Il nome può essere composto da un massimo di 255 caratteri e deve essere univoco all'interno del tuo account. 

   1. Scegliere **Crea database**.

------
#### [ AWS CLI ]

   ```
   aws glue create-database \
   '{
    "CatalogId": "<111122223333>",
     "database-input": {
       "Name":"<fed_glue_db>",
       "FederatedDatabase":{
           "Identifier":"<hive_db_on_emr>",
           "ConnectionName":"<hms_connection>"
        }
      }
    }'
   ```

------

1. 

**Visualizza le tabelle nel database federato.**

   Dopo aver creato il database federato, puoi visualizzare l'elenco delle tabelle nel tuo metastore Hive utilizzando la console Lake Formation o il. AWS CLI

------
#### [ Lake Formation console ]

   1. **Seleziona il nome del database dalla scheda Database condivisi.**

   1. Nella pagina **Database**, scegli **Visualizza tabelle**.

------
#### [ AWS CLI ]

   Gli esempi seguenti mostrano come recuperare la definizione di connessione, il nome del database e alcune o tutte le tabelle del database. Sostituisci l'ID del catalogo dati con l' Account AWS ID valido utilizzato per creare il database. Sostituisci `hms_connection` con il nome della connessione.

   ```
   aws glue get-connection \
   --name <hms_connection>  \       
   --catalog-id 111122223333
   ```

   ```
   aws glue get-database \
   --name <fed_glu_db> \             
   --catalog-id 111122223333
   ```

   ```
   aws glue get-tables \
   --database-name <fed_glue_db> \
   --catalog-id 111122223333
   ```

   ```
   aws glue get-table \
   --database-name <fed_glue_db> \
   --name <hive_table_name> \
   --catalog-id 111122223333
   ```

------

1. 

**Concedi i permessi.**

    Dopo aver creato il database, puoi concedere le autorizzazioni ad altri utenti e ruoli IAM nel tuo account o a organizzazioni esterne Account AWS . Non sarai in grado di concedere autorizzazioni per i dati di scrittura (inserimento, eliminazione) e autorizzazioni per i metadati (modifica, eliminazione, creazione) sui database federati. Per ulteriori informazioni sulla concessione delle autorizzazioni, vedere. [Gestione delle autorizzazioni di Lake Formation](managing-permissions.md) 

1. 

**Interroga i database federati.**

   Dopo aver concesso le autorizzazioni, gli utenti possono accedere e iniziare a interrogare il database federato utilizzando Athena e Amazon Redshift. Gli utenti possono ora utilizzare il nome del database locale per fare riferimento al database Hive nelle query SQL.

   **Sintassi di query di esempio Amazon Athena **

   Sostituisci `fed_glue_db` con il nome del database locale creato in precedenza.

    `Select * from fed_glue_db.customers limit 10;`

# Risorse aggiuntive
<a name="additional-resources-hms"></a>

Il seguente post sul blog contiene istruzioni dettagliate per configurare i permessi di Lake Formation su un database e tabelle di metastore Hive e interrogarli utilizzando Athena. Illustriamo anche un caso d'uso della condivisione tra account, in cui un responsabile di Lake Formation nell'account produttore A condivide un database Hive federato e tabelle che utilizzano il tag LF con l'account consumatore B. 
+ [Interroga il tuo metastore Apache Hive con le autorizzazioni AWS Lake Formation](https://aws.amazon.com/blogs/big-data/query-your-apache-hive-metastore-with-aws-lake-formation-permissions/)