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à.
Abilita Lake Formation con Amazon EMR
Con Amazon EMR 6.15.0 e versioni successive, quando esegui job Spark su Amazon EMR su EC2 cluster che accedono ai dati nel AWS Glue Data Catalog, puoi utilizzare AWS Lake Formation per applicare autorizzazioni a livello di tabella, riga, colonna e cella su tabelle basate su Hudi, Iceberg o Delta Lake.
In questa sezione, spieghiamo come creare una configurazione di sicurezza e configurare Lake Formation per funzionare con AmazonEMR. Descrive inoltre come avviare un cluster con la configurazione di sicurezza creata per Lake Formation.
Passaggio 1: configura un ruolo di runtime per il tuo EMR cluster
Per utilizzare un ruolo di runtime per il EMR cluster, è necessario 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": { "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
-
Quindi, per assicurarti che il tag di sessione possa autorizzare Lake Formation, imposta la proprietà
LakeFormationConfiguration/AuthorizedSessionTagValue
suAmazon EMR
. -
Usa il seguente comando per creare la configurazione EMR di sicurezza di Amazon.
aws emr create-security-configuration \ --name 'iamconfig-with-iam-lf' \ --security-configuration file://lf-runtime-roles-sec-cfg.json
In alternativa, puoi utilizzare la EMRconsole Amazon
per creare una configurazione di sicurezza con impostazioni personalizzate.
Fase 2: Avvio di un EMR cluster Amazon
Ora sei pronto per avviare un EMR cluster 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 EMR cluster Amazon e Ruoli di runtime per Amazon EMR Steps.
Fase 3a: configurare 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, accedi 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
Fase 3b: configurare 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. Replace (Sostituisci) 123456789012
con il tuo ID. Account AWS
Fase 4: Configurazione delle sovvenzioni AWS Glue and Lake Formation per i ruoli EMR di runtime di Amazon
Per continuare con la configurazione del controllo degli accessi basato su Lake Formation con i ruoli EMR di runtime di Amazon, devi configurare le sovvenzioni AWS Glue and Lake Formation per i ruoli EMR di runtime di Amazon. Per consentire ai tuoi ruoli IAM di runtime di interagire con Lake Formation, concedi loro l'accesso con lakeformation:GetDataAccess
eglue: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. IAMle autorizzazioni controllano l'accesso a Lake Formation and AWS Glue APIs e alle risorse. Sebbene tu possa avere l'autorizzazione Lake Formation per accedere a una tabella nel catalogo dati (SELECT), l'operazione fallisce se non disponi dell'IAMautorizzazione su glue:Get*
API. 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.{ "Version": "2012-10-17", "Statement": { "Sid": "LakeFormationManagedAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:Get*", "glue:Create*", "glue:Update*" ], "Resource": "*" } }
-
Crea la IAM politica 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 politica ai ruoli di IAM runtime, segui i passaggi descritti in Gestione delle AWS Lake Formation autorizzazioni.
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 un end-to-end esempio dettagliato, consulta Introducing runtime roles for Amazon EMR steps