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 versioni 6.15.0 e successive di Amazon EMR, 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.
Utilizza S3 Access Grants per aumentare l'accesso ai dati di Amazon S3 oltre alle autorizzazioni concesse dal ruolo di runtime o dai ruoli IAM collegati 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 conoscere i passaggi per utilizzare S3 Access Grants con altre implementazioni Amazon EMR, consulta la seguente documentazione:
Come funziona Amazon EMR con S3 Access Grants
I rilasci di Amazon EMR versione 6.15.0 e successive forniscono un'integrazione nativa con S3 Access Grants. Puoi abilitare S3 Access Grants su Amazon EMR ed eseguire processi 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 generale sul modo in cui Amazon EMR ottiene l'accesso ai dati protetti da S3 Access Grants.
![Come funziona Amazon EMR con S3 Access Grants](images/access-grants-overview.png)
-
Un utente invia un processo Spark di Amazon EMR che utilizza dati archiviati in Amazon S3.
-
Amazon EMR elabora una richiesta a S3 Access Grants per consentire l'accesso al bucket, al prefisso o all'oggetto per conto di quell'utente.
-
Amazon S3 restituisce credenziali temporanee sotto forma di token AWS Security Token Service (STS) per l'utente. Il token ha accesso al bucket, al prefisso o all'oggetto S3.
-
Amazon EMR utilizza il token STS per recuperare dati da S3.
-
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 con Amazon EMR versioni 6.15.0 e successive.
-
Spark è l'unico motore di query supportato quando utilizzi S3 Access Grants con Amazon EMR.
-
Delta Lake e Hudi sono gli unici formati a tabella aperta supportati quando utilizzi S3 Access Grants con Amazon EMR.
-
Le seguenti funzionalità di Amazon EMR non sono supportate per l'utilizzo con S3 Access Grants:
-
Tabelle Apache Iceberg
-
Autenticazione LDAP 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'opzione
fallbackToIAM
non è supportata per i cluster EMR che utilizzano la propagazione affidabile delle identità con il Centro identità IAM. -
S3 Access Grants with AWS Lake Formation è supportato solo con i cluster Amazon EMR eseguiti su Amazon. EC2
Considerazioni comportamentali
-
L'integrazione nativa di Apache Ranger con Amazon EMR include funzionalità congruenti con S3 Access Grants come parte del plug-in EMRFS S3 Apache Ranger. Se utilizzi Apache Ranger per il controllo granulare degli accessi (FGAC), ti consigliamo di utilizzare quel plug-in anziché S3 Access Grants.
-
Amazon EMR fornisce una cache delle credenziali in EMRFS per garantire che un utente non debba effettuare richieste ripetute per le stesse credenziali all'interno di un processo Spark. Pertanto, Amazon EMR richiede 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 ruolo IAM specificato per l'esecuzione dei processi. Per ulteriori informazioni, consulta Torna ai ruoli IAM.
Avvio di un cluster Amazon EMR con S3 Access Grants
Questa sezione descrive come avviare un cluster EMR eseguito su Amazon EC2 e utilizza S3 Access Grants per gestire l'accesso ai dati in Amazon S3. Per conoscere i passaggi per utilizzare S3 Access Grants con altre implementazioni Amazon EMR, consulta la seguente documentazione:
Utilizza i seguenti passaggi per avviare un cluster EMR eseguito su Amazon EC2 e utilizza S3 Access Grants per gestire l'accesso ai dati in Amazon S3.
-
Configura un ruolo di esecuzione dei processi per il cluster EMR. Includi le autorizzazioni IAM necessarie per eseguire i processi Spark,
s3:GetDataAccess
es3: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 Amazon EMR, S3 Access Grants aumenta le autorizzazioni impostate nei ruoli IAM. Se i ruoli IAM specificati per l'esecuzione dei processi dispongono di autorizzazioni per accedere direttamente a S3, gli utenti potrebbero essere in grado di accedere a più dati rispetto a quelli definiti in S3 Access Grants.
-
Quindi, usa AWS CLI per creare un cluster con Amazon EMR 6.15 o versione successiva e la
emrfs-site
classificazione per abilitare S3 Access Grants, in modo 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 l'integrazione AWS Lake Formation, puoi utilizzare Amazon S3 Access Grants per l'accesso diretto o tabulare ai dati in Amazon S3.
Nota
S3 Access Grants with AWS Lake Formation è supportato solo con i cluster Amazon EMR eseguiti su Amazon. EC2
- Accesso diretto
-
L'accesso diretto riguarda tutte le chiamate per accedere ai dati S3 che non richiamano l'API per il servizio AWS Glue che Lake Formation utilizza come metastore con Amazon EMR, ad esempio per chiamare:
spark.read
spark.read.csv("s3://...")
Quando utilizzi S3 Access Grants con AWS Lake Formation Amazon EMR, 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 l'API del metastore per accedere alla posizione di S3, ad esempio per eseguire query sui dati della tabella:
spark.sql("select * from test_tbl")
Quando utilizzi S3 Access Grants con AWS Lake Formation Amazon EMR, tutti i modelli di accesso tabulari passano attraverso Lake Formation.
Torna ai ruoli IAM
Se un utente tenta di eseguire un'operazione che S3 Access Grants non supporta, Amazon EMR è impostato per utilizzare il ruolo IAM specificato per l'esecuzione dei processi quando la 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 dei processi.
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 processi 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 cluster EMR, le autorizzazioni di S3 consentono ai processi Spark di accedere alle posizioni S3. Assicurti di proteggere queste posizioni 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.