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
Con Amazon EMR 6.15.0 e versioni successive, quando esegui job Spark su Amazon EMR EC2 su cluster che accedono ai dati nel AWS Glue Data Catalog, AWS Lake Formation puoi 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
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.
-
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 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 per i requisiti del certificato).
"TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" }
-
-
Quindi, per assicurarti che il tag di sessione possa autorizzare Lake Formation, imposta la proprietà
LakeFormationConfiguration/AuthorizedSessionTagValue
suAmazon EMR
. -
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
per creare una configurazione di sicurezza con impostazioni personalizzate.
Fase 2: avvio di un cluster Amazon EMR
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 e Ruoli di runtime per le fasi di Amazon EMR.
Passaggio 3a: configura le autorizzazioni a livello di tabella basate su Lake Formation con i ruoli di runtime di Amazon EMR
Se non hai bisogno di un controllo granulare degli accessi a livello di colonna, riga o cella, puoi impostare le autorizzazioni a livello di tabella con Catalogo dati Glue. Per abilitare l'accesso a livello di tabella, vai alla AWS Lake Formation console e seleziona l'opzione Impostazioni di integrazione delle applicazioni dalla sezione Amministrazione nella barra laterale. Quindi, abilita la seguente opzione e scegli Salva:
Consenti ai motori esterni di accedere ai dati nelle posizioni Amazon S3 con accesso completo alla tabella

Passaggio 3a: imposta le autorizzazioni a livello di colonna, riga o cella basate su Lake Formation con i ruoli di runtime di Amazon EMR
Per applicare le autorizzazioni a livello di tabella e colonna 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 External data filtering (Filtraggio dati esterni) della console Lake Formation. Sostituiscila 123456789012
con il tuo ID. Account AWS

Fase 4: Configurazione delle sovvenzioni AWS Glue and Lake Formation per i ruoli di runtime di Amazon EMR
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 (Panoramica del controllo degli accessi a Lake Formation).
-
Crea il file
emr-runtime-roles-lake-formation-policy.json
con i seguenti contenuti. -
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
-
Per assegnare questa policy ai ruoli di runtime IAM, segui i passaggi in Managing AWS Lake Formation permissions.
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.
{ "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 Introducing runtime roles for Amazon EMR steps.
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. AWS