

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

# Abilitazione di Amazon EMR con Lake Formation
<a name="emr-lf-enable"></a>

Con Amazon EMR 6.15.0 e versioni successive, quando esegui job Spark su Amazon EMR su cluster EC2 che accedono ai dati nel AWS Glue Data Catalog, puoi AWS Lake Formation utilizzare per applicare autorizzazioni a livello di tabella, riga, colonna e cella su tabelle basate su Hudi, Iceberg o Delta Lake.

Questa sezione illustra come creare una configurazione di sicurezza e impostare Lake Formation per l'utilizzo con Amazon EMR. Descrive inoltre come avviare un cluster con la configurazione di sicurezza creata per Lake Formation. 

## Passaggio 1: Impostazione di un ruolo di runtime per il cluster EMR
<a name="emr-lf-launch-cluster"></a>

Per utilizzare un ruolo di runtime per il cluster EMR, devi prima creare una configurazione di sicurezza. Con una configurazione di sicurezza puoi applicare opzioni di sicurezza, autorizzazione e autenticazione coerenti in tutti i tuoi cluster. 

1. Crea un file denominato `lf-runtime-roles-sec-cfg.json` con la seguente configurazione di sicurezza.

   ```
   {
       "AuthorizationConfiguration": {
           "IAMConfiguration": {
               "EnableApplicationScopedIAMRole": true,
               "ApplicationScopedIAMRoleConfiguration": {
                   "PropagateSourceIdentity": true
               }
           },
           "LakeFormationConfiguration": {
               "AuthorizedSessionTagValue": "Amazon EMR"
           }
       },
       "EncryptionConfiguration": {
   	    "EnableAtRestEncryption": false,
               "EnableInTransitEncryption": true,
               "InTransitEncryptionConfiguration": {
               "TLSCertificateConfiguration": {<certificate-configuration>}
           }
       }
   }
   ```

   L'esempio seguente illustra come utilizzare un file zip con certificati in Amazon S3 per la configurazione dei certificati:
   + Un file zip con certificati in Amazon S3 viene utilizzato come fornitore di chiavi. (Vedi [Fornitura di certificati per la crittografia di dati in transito con Amazon EMR](emr-encryption-enable.md#emr-encryption-certificates) per i requisiti dei certificati).

   ```
   "TLSCertificateConfiguration": {
   	"CertificateProviderType": "PEM",       
   	"S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip"
    }
   ```

   L'esempio seguente illustra come utilizzare un provider di chiavi personalizzate per la configurazione dei certificati:
   + Viene utilizzato un provider di chiavi personalizzato. (Vedi [Fornitura di certificati per la crittografia di dati in transito con Amazon EMR](emr-encryption-enable.md#emr-encryption-certificates) per i requisiti del certificato).

   ```
   "TLSCertificateConfiguration": {
   	"CertificateProviderType": "Custom",
   	"S3Object": "s3://MyConfig/artifacts/MyCerts.jar",
   	"CertificateProviderClass": "com.mycompany.MyCertProvider"
       }
   ```

1. Quindi, per assicurarti che il tag di sessione possa autorizzare Lake Formation, imposta la proprietà `LakeFormationConfiguration/AuthorizedSessionTagValue` su `Amazon EMR`. 

1. Utilizza il seguente comando per creare una configurazione di sicurezza Amazon EMR.

   ```
   aws emr create-security-configuration \
   --name 'iamconfig-with-iam-lf' \
   --security-configuration file://lf-runtime-roles-sec-cfg.json
   ```

   In alternativa, puoi utilizzare la [console Amazon EMR](https://console.aws.amazon.com//emr) per creare una configurazione di sicurezza con impostazioni personalizzate.

## Fase 2: avvio di un cluster Amazon EMR
<a name="emr-lf-launch-cluster"></a>

Ora puoi avviare un cluster EMR con la configurazione di sicurezza creata nel passaggio precedente. Per ulteriori informazioni sulle configurazioni di sicurezza, consulta le sezioni [Usa le configurazioni di sicurezza per configurare la sicurezza dei cluster Amazon EMR](emr-security-configurations.md) e [Ruoli di runtime per le fasi di Amazon EMR](emr-steps-runtime-roles.md).

## Fase 3: configurare le autorizzazioni a livello di colonna, riga o cella basate su Lake Formation con i ruoli di runtime di Amazon EMR
<a name="emr-lf-fgac-perms"></a>

Per applicare un controllo granulare degli accessi a livello di colonna, riga o cella con Lake Formation, l'amministratore del data lake per Lake Formation deve impostare `Amazon EMR` come valore per la configurazione del tag di sessione,. `AuthorizedSessionTagValue` Lake Formation utilizza questo tag di sessione per autorizzare i chiamanti e fornire l'accesso al data lake. Puoi impostare questo tag di sessione nella sezione **Impostazioni di integrazione dell'applicazione** della console Lake Formation. Sostituiscilo *123456789012* con il tuo Account AWS ID.

## Fase 4: Configurazione delle sovvenzioni AWS Glue and Lake Formation per i ruoli di runtime di Amazon EMR
<a name="emr-lf-trust-policy"></a>

Per continuare con la configurazione del controllo degli accessi basato su Lake Formation con i ruoli di runtime di Amazon EMR, devi configurare le sovvenzioni AWS Glue and Lake Formation per i ruoli di runtime di Amazon EMR. Per permettere ai ruoli di runtime IAM di interagire con Lake Formation, concedi loro l'accesso con `lakeformation:GetDataAccess` e `glue:Get*`.

Le autorizzazioni di Lake Formation controllano l'accesso alle risorse di AWS Glue Data Catalog, alle sedi Amazon S3 e ai dati sottostanti in tali sedi. Le autorizzazioni IAM controllano l'accesso a Lake Formation and AWS Glue APIs e alle risorse. Anche se disponi dell'autorizzazione di Lake Formation per accedere a una tabella nel catalogo dati (SELECT), l'operazione fallisce se non disponi dell'autorizzazione IAM per l'API `glue:Get*`. Per maggiori dettagli sul controllo degli accessi in Lake Formation, consulta la sezione [Lake Formation access control overview](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-overview.html) (Panoramica del controllo degli accessi a Lake Formation).

1.  Crea il file `emr-runtime-roles-lake-formation-policy.json` con i seguenti contenuti. 

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "LakeFormationManagedAccess",
         "Effect": "Allow",
         "Action": [
           "lakeformation:GetDataAccess",
           "glue:Get*",
           "glue:Create*",
           "glue:Update*"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. Crea la policy IAM correlata.

   ```
   aws iam create-policy \
   --policy-name emr-runtime-roles-lake-formation-policy \
   --policy-document file://emr-runtime-roles-lake-formation-policy.json
   ```

1. Per assegnare questa policy ai ruoli di runtime IAM, segui i passaggi in [Managing AWS Lake Formation permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/managing-permissions.html).

Ora puoi utilizzare i ruoli di runtime e Lake Formation per applicare le autorizzazioni a livello di tabella e colonna. Puoi anche utilizzare un'identità di origine per controllare le azioni e monitorare le operazioni con AWS CloudTrail.

Per ogni ruolo IAM che intendi utilizzare come ruolo di runtime, imposta la seguente policy di attendibilità, sostituendo `EMR_EC2_DefaultRole` con il ruolo del profilo dell'istanza. Per modificare la policy di attendibilità di un ruolo IAM, consulta [Modifica di una policy di attendibilità del ruolo](https://docs.aws.amazon.com//IAM/latest/UserGuide/roles-managingrole-editing-console.html).

```
{
   "Sid":"AllowAssumeRole",
   "Effect":"Allow",
   "Principal":{
     "AWS":"arn:aws:iam::<AWS_ACCOUNT_ID>:role/EMR_EC2_DefaultRole"
   },
   "Action":[
        "sts:AssumeRole",
        "sts:TagSession"
       ]
 }
```

Per un end-to-end esempio dettagliato, consulta la sezione [Introduzione ai ruoli di runtime per le fasi di Amazon EMR.](https://aws.amazon.com/blogs/big-data/introducing-runtime-roles-for-amazon-emr-steps-use-iam-roles-and-aws-lake-formation-for-access-control-with-amazon-emr/)<a name="iceberg-with-lake-formation-spark-catalog-integration-lf-ec2"></a>

Per informazioni su come integrare Iceberg e AWS Glue Data Catalog per una gerarchia multicatalogo, vedi [Configurare Spark per accedere a una gerarchia multicatalogo in Glue Data Catalog](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-multi-catalog.html#emr-lakehouse-using-spark-access). AWS 