View a markdown version of this page

Accesso basato sul percorso S3 tramite Lake Formation per Amazon EMR Spark - 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à.

Accesso basato sul percorso S3 tramite Lake Formation per Amazon EMR Spark

Con le versioni 7.13.0 e successive di Amazon EMR, puoi utilizzare il plug-in AWS Lake Formation Access Grants per ottenere credenziali temporanee per i percorsi S3 registrati con Lake Formation. Ciò consente alle query di Spark che fanno riferimento direttamente ai percorsi S3 di utilizzare le Formation-vended credenziali Lake, oltre alla distribuzione di credenziali basata sui nomi di tabella esistente fornita da Full Table Access (FTA). Per maggiori dettagli, consulta Accesso alle sedi di Amazon S3. https://docs.aws.amazon.com/lake-formation/latest/dg/accessing-s3-locations.html

Il plugin Lake Formation Access Grants si integra con il file system S3A in Spark. Se abilitato, S3A utilizza il plugin per chiamare l'GetTemporaryDataLocationCredentialsAPI Lake Formation per ottenere credenziali temporanee per i percorsi S3 che appartengono alle tabelle Lake. Formation-registered

Questo plugin è utile quando i job Spark leggono o scrivono dati facendo riferimento direttamente ai percorsi S3 (ad esempio) anziché utilizzare i nomi delle tabelle. spark.read.parquet("s3a://my-bucket/my-table/") Il plugin supporta anche il fallback opzionale alle credenziali del ruolo S3 Access Grants o IAM quando l'accesso a Lake Formation viene negato.

Relazione con l'accesso completo alla tabella (FTA)

La funzionalità Full Table Access esistente utilizza l'GetTemporaryGlueTableCredentialsAPI, che fornisce le credenziali in base ai nomi delle tabelle. Il plugin Lake Formation Access Grants utilizza l'GetTemporaryDataLocationCredentialsAPI, che fornisce le credenziali in base ai percorsi S3.

È possibile utilizzare entrambe le funzionalità insieme. Quando entrambe sono abilitate, le credenziali FTA hanno la precedenza per le query sui nomi delle tabelle, mentre il plug-in gestisce le query dirette sul percorso S3.

Prerequisiti

Prima di utilizzare il plug-in Lake Formation Access Grants, completa i seguenti passaggi:

  • Configura Full Table Access (FTA) per il tuo ambiente Amazon EMR. Per istruzioni, consulta Configurazione dell'accesso completo alle tabelle di Lake Formation.

  • Nella console di Lake Formation, registra il percorso S3 con l'account proprietario:

    1. Accedi alle posizioni dei Data Lake.

    2. Seleziona la posizione e abilita Register S3 path with Owner Account.

  • Concedi al ruolo di runtime le autorizzazioni appropriate di Lake Formation sulla tabella:

    • Per leggere i dati della tabella, concedi al ruolo di runtime SELECT l'autorizzazione completa sulla tabella.

    • Per modificare i dati della tabella, concedi l'SUPERautorizzazione del ruolo di runtime sulla tabella.

Abilita il plugin Lake Formation Access Grants

Per abilitare il plugin, imposta le seguenti proprietà di configurazione S3A nella tua sessione Spark:

Proprietà di configurazione del plugin Lake Formation Access Grants
Proprietà Predefinita Description
fs.s3a.lakeformation.access.grants.enabled FALSE Abilita il plugin Lake Formation Access Grants.
fs.s3a.lakeformation.access.grants.fallback.to.iam FALSE Abilita il fallback alle credenziali di ruolo S3 Access Grants o IAM se Lake Formation nega l'accesso.

Comportamento alternativo

Quando fs.s3a.lakeformation.access.grants.fallback.to.iam è impostato sutrue, il plugin utilizza una catena di fallback se Lake Formation nega l'accesso. Ciò è utile negli scenari in cui alcuni percorsi S3 sono registrati con Lake Formation e altri sono gestiti tramite S3 Access Grants o politiche IAM.

Quando il fallback è abilitato, il plugin tenta di ottenere le credenziali nel seguente ordine:

  1. Lake Formation: il plugin chiama. GetTemporaryDataLocationCredentials Se Lake Formation concede l'accesso, il plugin restituisce tali credenziali.

  2. S3 Access Grants — Se Lake Formation nega l'accesso, il plugin verifica se S3 Access Grants può fornire le credenziali per il percorso richiesto. Se un'istanza di S3 Access Grants copre il percorso e il chiamante ha una concessione corrispondente, il plug-in utilizza tali credenziali.

  3. Ruolo IAM: se sia Lake Formation che S3 Access Grants negano l'accesso, il plug-in ricorre alle credenziali del ruolo IAM allegate al job.

Considerazioni e limitazioni

  • Il plugin supporta i formati di tabella Apache Hive, Apache Hudi e Delta Lake. Apache Iceberg non è attualmente supportato.

  • Il plug-in non è attualmente supportato con la modalità Amazon EMR Spark Fine-Grained Access Control (FGAC).

  • Path-based la vendita di credenziali richiede una mappatura 1:1 tra una tabella e la sua posizione S3 nel Glue Data Catalog. AWS