Utilizzo di Amazon S3 Access Grants con Amazon EMR - 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à.

Utilizzo di Amazon S3 Access Grants con Amazon EMR

Panoramica di S3 Access Grants per Amazon EMR

Con le EMR versioni 6.15.0 e successive di Amazon, Amazon S3 Access Grants fornisce una soluzione di controllo degli accessi scalabile che puoi utilizzare per aumentare l'accesso ai tuoi dati Amazon S3 da Amazon. EMR Se hai una configurazione di autorizzazioni complessa o di grandi dimensioni per i dati S3, puoi utilizzare Access Grants per dimensionare le autorizzazioni relative ai dati S3 per utenti, ruoli e applicazioni sul cluster.

Usa S3 Access Grants per aumentare l'accesso ai dati di Amazon S3 oltre alle autorizzazioni concesse dal ruolo di runtime o ai IAM ruoli associati alle identità con accesso al tuo cluster. EMR Per ulteriori informazioni, consulta Gestione degli accessi con S3 Access Grants nella Guida per l'utente di Amazon S3.

Per i passaggi per utilizzare S3 Access Grants con altre EMR distribuzioni Amazon, consulta la seguente documentazione:

Come EMR funziona Amazon con S3 Access Grants

EMRLe versioni 6.15.0 e successive di Amazon forniscono un'integrazione nativa con S3 Access Grants. Puoi abilitare S3 Access Grants su Amazon EMR ed eseguire i job Spark. Quando il processo Spark effettua una richiesta di dati S3, Amazon S3 fornisce credenziali temporanee che rientrano nell'ambito del bucket, del prefisso o dell'oggetto specifico.

Di seguito è riportata una panoramica di alto livello su come Amazon EMR accede ai dati protetti da S3 Access Grants.

Come EMR funziona Amazon con S3 Access Grants
  1. Un utente invia un job Amazon EMR Spark che utilizza dati archiviati in Amazon S3.

  2. Amazon EMR richiede S3 Access Grants per consentire l'accesso al bucket, al prefisso o all'oggetto per conto di quell'utente.

  3. Amazon S3 restituisce credenziali temporanee sotto forma di AWS Security Token Service (STS) token per l'utente. Il token ha accesso al bucket, al prefisso o all'oggetto S3.

  4. Amazon EMR utilizza il STS token per recuperare dati da S3.

  5. Amazon EMR riceve i dati da S3 e restituisce i risultati all'utente.

Considerazioni su S3 Access Grants con Amazon EMR

Prendi nota dei seguenti comportamenti e limitazioni quando usi S3 Access Grants con Amazon. EMR

Supporto funzionalità

  • S3 Access Grants è supportato dalle EMR versioni di Amazon 6.15.0 e successive.

  • Spark è l'unico motore di query supportato quando usi S3 Access Grants con Amazon. EMR

  • Delta Lake e Hudi sono gli unici formati open table supportati quando usi S3 Access Grants con Amazon. EMR

  • Le seguenti EMR funzionalità di Amazon non sono supportate per l'uso con S3 Access Grants:

    • Tabelle Apache Iceberg

    • LDAPautenticazione nativa

    • Autenticazione nativa di Apache Ranger

    • AWS CLI richieste ad Amazon S3 che utilizzano ruoli IAM

    • accesso a S3 tramite open source S3A protocol

  • L'fallbackToIAMopzione non è supportata per EMR i cluster che utilizzano la propagazione affidabile delle identità con Identity Center. IAM

  • S3 Access Grants con AWS Lake Formationè supportato solo con EMR i cluster Amazon eseguiti su AmazonEC2.

Considerazioni comportamentali

  • L'integrazione nativa di Apache Ranger con Amazon EMR contiene funzionalità congruenti con S3 Access Grants come parte del plug-in S3 Apache Ranger. EMRFS Se utilizzi Apache Ranger per un controllo granulare degli accessi (FGAC), ti consigliamo di utilizzare quel plug-in anziché S3 Access Grants.

  • Amazon EMR fornisce una cache delle credenziali EMRFS per garantire che un utente non debba fare richieste ripetute per le stesse credenziali all'interno di un job Spark. Pertanto, Amazon richiede EMR sempre il privilegio di livello predefinito quando richiede le credenziali. Per ulteriori informazioni, consulta Richiedi l'accesso ai dati di S3 nella Guida per l'utente di Amazon S3.

  • Nel caso in cui un utente esegua un'azione che S3 Access Grants non supporta, Amazon EMR è impostato per utilizzare il IAM ruolo specificato per l'esecuzione del lavoro. Per ulteriori informazioni, consulta Ritornate ai ruoli IAM.

Avvia un EMR cluster Amazon con S3 Access Grants

Questa sezione descrive come avviare un EMR cluster eseguito su Amazon EC2 e utilizza S3 Access Grants per gestire l'accesso ai dati in Amazon S3. Per i passaggi per utilizzare S3 Access Grants con altre EMR distribuzioni Amazon, consulta la seguente documentazione:

Utilizza i seguenti passaggi per avviare un EMR cluster eseguito su Amazon EC2 e utilizza S3 Access Grants per gestire l'accesso ai dati in Amazon S3.

  1. Imposta un ruolo di esecuzione del lavoro per il tuo cluster. EMR Includi IAM le autorizzazioni necessarie per eseguire i job Spark e: s3:GetDataAccess s3:GetAccessGrantsInstanceForPrefix

    { "Effect": "Allow", "Action": [ "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": [ //LIST ALL INSTANCE ARNS THAT THE ROLE IS ALLOWED TO QUERY "arn:aws_partition:s3:Region:account-id1:access-grants/default", "arn:aws_partition:s3:Region:account-id2:access-grants/default" ] }
    Nota

    Con AmazonEMR, S3 Access Grants aumenta le autorizzazioni impostate nei ruoli. IAM Se i IAM ruoli specificati per l'esecuzione del lavoro contengono le autorizzazioni per accedere direttamente a S3, gli utenti potrebbero essere in grado di accedere a più dati oltre ai soli dati definiti in S3 Access Grants.

  2. Quindi, usa il AWS CLI per creare un cluster con Amazon EMR 6.15 o versioni successive e la emrfs-site classificazione per abilitare S3 Access Grants, simile al seguente esempio:

    aws emr create-cluster --release-label emr-6.15.0 \ --instance-count 3 \ --instance-type m5.xlarge \ --configurations '[{"Classification":"emrfs-site", "Properties":{"fs.s3.s3AccessGrants.enabled":"true", "fs.s3.s3AccessGrants.fallbackToIAM":"false"}}]'

S3 Access Grants con AWS Lake Formation

Se utilizzi Amazon EMR con AWS Lake Formation integrazione, puoi utilizzare Amazon S3 Access Grants per l'accesso diretto o tabulare ai dati in Amazon S3.

Nota

S3 Access Grants con AWS Lake Formation è supportato solo con EMR i cluster Amazon eseguiti su AmazonEC2.

Accesso diretto

L'accesso diretto riguarda tutte le chiamate per accedere ai dati S3 che non richiamano il comando for API AWS Il servizio Glue che Lake Formation utilizza come metastore con AmazonEMR, ad esempio, per chiamare: spark.read

spark.read.csv("s3://...")

Quando usi S3 Access Grants con AWS Lake Formation su AmazonEMR, tutti i modelli di accesso diretto passano attraverso S3 Access Grants per ottenere credenziali S3 temporanee.

Accesso tabulare

L'accesso tabulare si verifica quando Lake Formation richiama il metastore API per accedere alla posizione S3, ad esempio per interrogare i dati della tabella:

spark.sql("select * from test_tbl")

Quando usi S3 Access Grants con AWS Lake Formation su AmazonEMR, tutti i modelli di accesso tabellari passano attraverso Lake Formation.

Ritornate ai ruoli IAM

Se un utente tenta di eseguire un'azione che S3 Access Grants non supporta, Amazon EMR utilizza per impostazione predefinita il IAM ruolo specificato per l'esecuzione del lavoro al momento della configurazione. fallbackToIAM true Ciò consente agli utenti di tornare al proprio ruolo di esecuzione dei processi per fornire le credenziali per l'accesso a S3 in scenari non coperti da S3 Access Grants.

Se fallbackToIAM è abilitato, gli utenti possono accedere ai dati consentiti dall'Access Grant. Se non esiste un token S3 Access Grants per i dati di destinazione, Amazon EMR verifica l'autorizzazione per il ruolo di esecuzione del lavoro.

Nota

Ti consigliamo di testare le tue autorizzazioni di accesso con la configurazione fallbackToIAM abilitata anche se prevedi di disabilitare l'opzione per i carichi di lavoro di produzione. Con i job Spark, ci sono altri modi in cui gli utenti potrebbero accedere a tutti i set di autorizzazioni con le proprie credenziali. IAM Se abilitate sui EMR cluster, le sovvenzioni di S3 consentono ai job Spark di accedere alle sedi S3. Dovresti assicurarti di proteggere queste sedi S3 dall'accesso esterno a. EMRFS Ad esempio, devi proteggere le posizioni S3 dall'accesso da parte dei client S3 utilizzati nei notebook o dalle applicazioni che non sono supportate da S3 Access Grants come Hive o Presto.