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 ai dati S3 in un altro AWS account da EMR Serverless
Puoi eseguire job Serverless di Amazon EMR da un AWS account e configurarli per accedere ai dati nei bucket Amazon S3 che appartengono a un altro account. AWS Questa pagina descrive come configurare l'accesso tra account a S3 da EMR Serverless.
I lavori eseguiti su EMR Serverless possono utilizzare una policy di bucket S3 o un ruolo presunto per accedere ai dati in Amazon S3 da un altro account. AWS
Prerequisiti
Per configurare l'accesso a più account per Amazon EMR Serverless, completa le attività accedendo a due account: AWS
-
AccountA— Questo è l' AWS account su cui hai creato un'applicazione Amazon EMR Serverless. Prima di configurare l'accesso tra più account, tieni a portata di mano quanto segue in questo account:-
Un'applicazione Serverless Amazon EMR in cui eseguire lavori.
-
Un ruolo di esecuzione del lavoro che dispone delle autorizzazioni necessarie per eseguire i lavori nell'applicazione. Per ulteriori informazioni, vedi Ruoli Job Runtime per Amazon EMR Serverless.
-
-
AccountB— Questo è l' AWS account che contiene il bucket S3 a cui desideri accedere per i tuoi job Serverless di Amazon EMR.
Utilizza una policy sui bucket S3 per accedere ai dati S3 tra più account
Per accedere al bucket in S3 account B daaccount A, collega la seguente policy al bucket in S3. account B
Per ulteriori informazioni sull'accesso a più account S3 con le policy dei bucket S3, consulta l'Esempio 2: Il proprietario del bucket concede le autorizzazioni per i bucket tra account nella Guida per l'utente di Amazon Simple Storage Service.
Usa un ruolo presunto per accedere ai dati S3 tra più account
Un altro modo per configurare l'accesso tra account per Amazon EMR Serverless consiste nell'eseguire AssumeRole l'azione di AWS Security Token Service ().AWS STS AWS STS è un servizio web globale che consente di richiedere credenziali temporanee con privilegi limitati per gli utenti. Puoi effettuare chiamate API verso EMR Serverless e Amazon S3 con le credenziali di sicurezza temporanee con cui crei. AssumeRole
I passaggi seguenti illustrano come utilizzare un ruolo presunto per accedere ai dati S3 tra account diversi da EMR Serverless:
-
Crea un bucket Amazon S3,
cross-account-bucket, inAccountB. Per ulteriori informazioni, consulta la sezione Creazione di un bucket nella Guida per l'utente di Amazon Simple Storage Service. Se desideri avere accesso a DynamoDB su più account, crea anche una tabella DynamoDB in.AccountBPer ulteriori informazioni, consulta Creating a DynamoDB table nella Amazon DynamoDB Developer Guide. -
Crea un ruolo IAM
Cross-Account-Role-BinAccountBper accedere across-account-bucket.Accedi AWS Management Console e apri la console IAM all'indirizzo. https://console.aws.amazon.com/iam/
-
Scegli Roles (Ruoli), quindi crea un nuovo ruolo:
Cross-Account-Role-B. Per ulteriori informazioni su come creare ruoli IAM, consulta Creating IAM roles nella IAM User Guide. -
Crea una policy IAM che specifichi le autorizzazioni per
Cross-Account-Role-Bper accedere al bucket S3cross-account-bucket, come dimostra la seguente istruzione di policy. Quindi, allega la policy IAM aCross-Account-Role-B. Per ulteriori informazioni, consulta Creating IAM policies nella IAM User Guide.
Se hai bisogno dell'accesso a DynamoDB, crea una policy IAM che specifichi le autorizzazioni per accedere alla tabella DynamoDB tra account. Quindi, allega la policy IAM a
Cross-Account-Role-B. Per ulteriori informazioni, consulta Amazon DynamoDB: consente l'accesso a una tabella specifica nella IAM User Guide.Di seguito è riportata una politica per consentire l'accesso alla tabella DynamoDB
CrossAccountTable. -
Modifica la relazione di fiducia per il ruolo
Cross-Account-Role-B.-
Per configurare la relazione di trust per il ruolo, scegli la scheda Trust Relationships nella console IAM per il ruolo
Cross-Account-Role-Bche hai creato nel passaggio 2. -
Seleziona Edit Trust Relationship (Modifica relazione di fiducia).
-
Aggiungi il seguente documento di policy. Ciò consente
Job-Execution-Role-AAccountAdi assumere ilCross-Account-Role-Bruolo.
-
-
Concedi
Job-Execution-Role-AAccountAil AWS STSAssumeRolepermesso di assumereCross-Account-Role-B.-
Nella console IAM per l' AWS account
AccountA, selezionaJob-Execution-Role-A. -
Aggiungi la seguente istruzione di policy a
Job-Execution-Role-Aper autorizzare l'operazioneAssumeRolenel ruoloCross-Account-Role-B.
-
Esempi di ruoli presunti
Usa un singolo ruolo presunto per accedere a tutte le risorse S3 in un account oppure, con Amazon EMR 6.11 e versioni successive, configura più ruoli IAM da assumere quando accedi a diversi bucket S3 tra account diversi.
Accedi alle risorse S3 con un ruolo presunto
Nota
Quando configuri un lavoro per utilizzare un singolo ruolo assunto, tutte le risorse S3 del job utilizzano quel ruolo, incluso lo entryPoint script.
Se desideri utilizzare un singolo ruolo assunto per accedere a tutte le risorse S3 nell'account B, specifica le seguenti configurazioni:
-
Specificare la configurazione EMRFS per.
fs.s3.customAWSCredentialsProvidercom.amazonaws.emr.AssumeRoleAWSCredentialsProvider -
Per Spark, usa
spark.emr-serverless.driverEnv.ASSUME_ROLE_CREDENTIALS_ROLE_ARNe specifica le variabilispark.executorEnv.ASSUME_ROLE_CREDENTIALS_ROLE_ARNdi ambiente su driver ed executor. -
Per Hive
hive.emr-serverless.launch.env.ASSUME_ROLE_CREDENTIALS_ROLE_ARNtez.am.emr-serverless.launch.env.ASSUME_ROLE_CREDENTIALS_ROLE_ARN, usa e specifica le variabilitez.task.emr-serverless.launch.env.ASSUME_ROLE_CREDENTIALS_ROLE_ARNdi ambiente nei contenitori Hive driver, Tez application primary e Tez task.
Gli esempi seguenti mostrano come utilizzare un ruolo presunto per avviare un processo EMR Serverless con accesso tra account.
Accedi alle risorse S3 con più ruoli presunti
Con le versioni 6.11.0 e successive di EMR Serverless, configura più ruoli IAM da assumere quando accedi a diversi bucket tra account. Se desideri accedere a diverse risorse S3 con diversi ruoli assunti nell'account B, utilizza le seguenti configurazioni all'avvio del job run:
-
Specificare la configurazione EMRFS per.
fs.s3.customAWSCredentialsProvidercom.amazonaws.emr.serverless.credentialsprovider.BucketLevelAssumeRoleCredentialsProvider -
Specificate la configurazione EMRFS
fs.s3.bucketLevelAssumeRoleMappingper definire la mappatura dal nome del bucket S3 al ruolo IAM nell'account B da assumere. Il valore deve essere nel formato di.bucket1->role1;bucket2->role2
Ad esempio, utilizzare per accedere arn:aws:iam:: al bucket AccountB:role/Cross-Account-Role-B-1bucket1 e utilizzare arn:aws:iam:: per accedere al AccountB:role/Cross-Account-Role-B-2bucket2 bucket. Gli esempi seguenti mostrano come avviare l'esecuzione di un job EMR Serverless con accesso tra più account tramite più ruoli presunti.