Abilitazione di Amazon EMR con Lake Formation - Amazon EMR

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

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": { "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
  2. Quindi, per assicurarti che il tag di sessione possa autorizzare Lake Formation, imposta la proprietà LakeFormationConfiguration/AuthorizedSessionTagValue su Amazon EMR.

  3. 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 Utilizzo delle configurazioni di sicurezza per impostare la sicurezza del cluster 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, 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

Filtraggio dei dati esterni di Lake Formation

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. Sostituisci 123456789012 con l'ID del tuo Account AWS .

Filtraggio dei dati esterni di Lake Formation

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 alle API e alle risorse di Lake Formation e AWS Glue. 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).

  1. 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": "*" } }
  2. 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
  3. 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. AWS CloudTrail Per un end-to-end esempio dettagliato, consulta Introducing runtime roles for Amazon EMR steps.