

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

# 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/)