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à.
Configurazione di ruoli IAM per le richieste EMRFS ad Amazon S3
Nota
La funzionalità di mappatura dei ruoli EMRFS descritta in questa pagina è stata migliorata con l'introduzione di Amazon S3 Access Grants in Amazon EMR 6.15.0. Per una soluzione scalabile di controllo degli accessi per i tuoi dati in Amazon S3, ti consigliamo di utilizzare S3 Access Grants con Amazon EMR.
Quando un'applicazione in esecuzione su un cluster fa riferimento ai dati utilizzando il formato s3://
, Amazon EMR utilizza EMRFS per effettuare la richiesta. Per interagire con Amazon S3, EMRFS presuppone le politiche di autorizzazione allegate al tuo profilo di istanza Amazon. EC2 Lo stesso profilo di EC2 istanza Amazon viene utilizzato indipendentemente dall'utente o dal gruppo che esegue l'applicazione o dalla posizione dei dati in Amazon S3. mydata
Se si dispone di un cluster con più utenti che necessitano di diversi livelli di accesso ai dati in Amazon S3 tramite EMRFS, è possibile impostare una configurazione della sicurezza con i ruoli IAM per EMRFS. EMRFS può assumere un ruolo di servizio diverso per EC2 le istanze del cluster in base all'utente o al gruppo che effettua la richiesta o in base alla posizione dei dati in Amazon S3. Ogni ruolo IAM può avere differenti autorizzazioni per l'accesso ai dati in Amazon S3. Per ulteriori informazioni sul ruolo di servizio per le istanze di cluster EC2 , consulta. Ruolo di servizio per le istanze del cluster (profilo EC2 dell'istanza) EC2
L'utilizzo di ruoli IAM personalizzati per EMRFS è supportato in Amazon EMR versioni 5.10.0 e successive. Se si utilizza una versione precedente o si dispone di requisiti che i ruoli IAM per EMRFS non possono soddisfare, è possibile creare un provider di credenziali personalizzato. Per ulteriori informazioni, consulta Autorizzazione dell'accesso ai dati EMRFS in Amazon S3.
Quando utilizzi una configurazione di sicurezza per specificare ruoli IAM per EMRFS, configuri mappature di ruoli. Ogni mappatura di ruoli specifica un ruolo IAM che corrisponde a identificatori. Questi identificatori determinano la base per l'accesso ad Amazon S3 tramite EMRFS. Gli identificatori possono essere utenti, gruppi o prefissi Amazon S3 che indicano un percorso di dati. Quando EMRFS effettua una richiesta ad Amazon S3, se la richiesta corrisponde alla base per l'accesso, EMRFS fa sì che le istanze del EC2 cluster assumano il ruolo IAM corrispondente per la richiesta. Le autorizzazioni IAM associate a quel ruolo si applicano invece delle autorizzazioni IAM associate al ruolo di servizio per le istanze del cluster. EC2
Gli utenti e i gruppi in una mappatura di ruoli sono utenti e gruppi Hadoop definiti nel cluster. Gli utenti e i gruppi sono passati a EMRFS nel contesto dell'applicazione che lo utilizza (ad esempio, la rappresentazione di utente YARN). Il prefisso Amazon S3 può essere un identificatore bucket di qualsiasi profondità (ad esempio, s3://amzn-s3-demo-bucket
o s3://amzn-s3-demo-bucket/myproject/mydata
). Puoi specificare più identificatori in una singola mappatura di ruoli, ma devono essere tutti dello stesso tipo.
Importante
I ruoli IAM per EMRFS forniscono l'isolamento a livello di applicazione tra gli utenti dell'applicazione. Non offrono l'isolamento a livello di host tra gli utenti sull'host. Qualsiasi utente con accesso al cluster può ignorare l'isolamento per assumere uno qualsiasi dei ruoli.
Quando un'applicazione cluster invia una richiesta ad Amazon S3 tramite EMRFS, EMRFS valuta le mappature di ruoli nell'ordine decrescente in cui sono visualizzate nella configurazione di sicurezza. Se una richiesta effettuata tramite EMRFS non corrisponde a nessun identificatore, EMRFS torna a utilizzare il ruolo di servizio per le istanze del cluster. EC2 Per questo motivo, è consigliabile che le policy associate a questo ruolo limitino le autorizzazioni per Amazon S3. Per ulteriori informazioni, consulta Ruolo di servizio per le istanze del cluster (profilo EC2 dell'istanza) EC2.
Configurazione dei ruoli
Prima di impostare una configurazione di sicurezza con ruoli IAM per EMRFS, pianifica e crea i ruoli e le policy di autorizzazione da associare ai ruoli. Per ulteriori informazioni, vedi Come funzionano i ruoli per le istanze? EC2 nella Guida per l'utente di IAM. Quando crei policy di autorizzazione, ti consigliamo di iniziare con la policy gestita associata al ruolo Amazon EMR predefinito EC2 per, quindi di modificarla in base alle tue esigenze. Il nome del ruolo predefinito è EMR_EC2_DefaultRole
e la policy gestita predefinita da modificare è AmazonElasticMapReduceforEC2Role
. Per ulteriori informazioni, consulta Ruolo di servizio per le istanze del cluster (profilo EC2 dell'istanza) EC2.
Aggiornamento delle policy di affidabilità per le autorizzazioni del ruolo Assume
Ogni ruolo utilizzato da EMRFS deve avere una policy di fiducia che consenta al ruolo Amazon EMR del cluster di assumerlo EC2 . Analogamente, il ruolo Amazon EMR for del cluster EC2 deve avere una policy di fiducia che consenta ai ruoli EMRFS di assumerlo.
L'esempio di policy di trust riportata di seguito è collegata ai ruoli per EMRFS. L'istruzione consente al ruolo predefinito di Amazon EMR di EC2 assumere il ruolo. Se ad esempio si dispone di due ruoli fittizi EMRFS, EMRFSRole_First
ed EMRFSRole_Second
, questa istruzione di policy viene aggiunta alla policy di trust per ognuno di essi.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
AWSAcctID
:role/EMR_EC2_DefaultRole" }, "Action":"sts:AssumeRole" } ] }
Inoltre, la seguente istruzione per policy di trust di esempio viene aggiunta al ruolo EMR_EC2_DefaultRole
per consentire ai due ruoli EMRFS fittizi di assumerlo.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": ["arn:aws:iam::
AWSAcctID
:role/EMRFSRole_First
", "arn:aws:iam::AWSAcctID
:role/EMRFSRole_Second
"] }, "Action":"sts:AssumeRole" } ] }
Aggiornamento della policy di affidabilità di un ruolo IAM
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
-
Scegliere Roles (Ruoli), immettere il nome del ruolo in Search (Cerca), quindi selezionare il relativo Role name (Nome ruolo).
-
Scegliere Trust relationships (Relazioni di trust), quindi Edit trust relationship (Modifica relazione di trust).
-
Aggiungi un'istruzione di attendibilità in base a quanto riportato nel Policy Document (Documento di policy) secondo le linee guida in alto, quindi scegli Update Trust Policy (Aggiorna policy di attendibilità).
Indicazione di un ruolo come utente chiave
Se un ruolo autorizza l'accesso a una posizione in Amazon S3 crittografata mediante una AWS KMS key, assicurati che il ruolo sia specificato come utente di chiavi. Ciò concede al ruolo l'autorizzazione a utilizzare la chiave KMS. Per ulteriori informazioni, consulta Policy delle chiavi in AWS KMS nella Guida per gli sviluppatori di AWS Key Management Service .
Impostazione di una configurazione di sicurezza con ruoli IAM per EMRFS
Importante
Se non si applica nessuno dei ruoli IAM per EMRFS specificati, EMRFS torna al ruolo di Amazon EMR per. EC2 Valuta la possibilità di personalizzare questo ruolo per limitare le autorizzazioni per Amazon S3 come appropriato per la tua applicazione e di specificare questo ruolo personalizzato anziché EMR_EC2_DefaultRole
quando crei un cluster. Per ulteriori informazioni, consulta Personalizza i ruoli IAM con Amazon EMR e Specifica dei ruoli IAM personalizzati durante la creazione di un cluster.
Specifica dei ruoli IAM per le richieste EMRFS ad Amazon S3 mediante la console
-
Creare una configurazione di sicurezza che specifichi mappature di ruoli:
-
Nella console di Amazon EMR, seleziona Security configurations (Configurazioni di sicurezza) e Create (Crea).
-
Digitare un nome in Name (Nome) per la configurazione di sicurezza. Questo nome è utilizzato per specificare la configurazione di sicurezza al momento della creazione di un cluster.
-
Scegli Use IAM roles for EMRFS requests to Amazon S3 (Utilizza i ruoli IAM per le richieste EMRFS ad Amazon S3).
-
Seleziona un IAM role (Ruolo IAM) da applicare e in Basis for access (Base per accesso) seleziona un tipo di identificatore (Users [Utenti], Groups [Gruppi) o S3 prefixes [Prefissi S3]) dall'elenco e immetti gli identificatori corrispondenti. Se si utilizzano più identificatori, separarli con una virgola e senza inserire spazi. Per ulteriori informazioni su ogni tipo di identificatore, vedi JSON configuration reference qui sotto.
-
Scegliere Add role (Aggiungi ruolo) per configurare ulteriori mappature di ruoli come descritto nella fase precedente.
-
Configurare altre opzioni per la configurazione di sicurezza come appropriato e scegliere Create (Crea). Per ulteriori informazioni, consulta Crea una configurazione di sicurezza con la console Amazon EMR o con AWS CLI.
-
-
Specificare la configurazione di sicurezza creata precedentemente alla creazione di un cluster. Per ulteriori informazioni, consulta Specificare una configurazione di sicurezza per un cluster Amazon EMR.
Per specificare i ruoli IAM per le richieste EMRFS ad Amazon S3 utilizzando AWS CLI
-
Utilizzare il comando
aws emr create-security-configuration
, specificando un nome per la configurazione di sicurezza, e i dettagli relativi a tale configurazione in formato JSON.L'esempio di comando riportato di seguito crea una configurazione di sicurezza con il nome
EMRFS_Roles_Security_Configuration
. Questa è basata su una struttura JSON nel fileMyEmrfsSecConfig.json
, che viene salvato nella stessa directory in cui viene eseguito il comando.aws emr create-security-configuration --name
EMRFS_Roles_Security_Configuration
--security-configurationfile://MyEmrFsSecConfig.json
.Utilizza le linee guida seguenti per la struttura del file
MyEmrFsSecConfig.json
. È possibile specificare questa struttura insieme alle strutture per altre opzioni della configurazione di sicurezza. Per ulteriori informazioni, consulta Crea una configurazione di sicurezza con la console Amazon EMR o con AWS CLI.Di seguito è riportato un esempio di frammento JSON per specificare ruoli IAM personalizzati per EMRFS all'interno di una configurazione di sicurezza. Vengono illustrate le mappature dei ruoli per i tre diversi tipi di identificatori, seguite da un riferimento ai parametri.
{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "
arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1
", "IdentifierType": "User", "Identifiers": [ "user1
" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_demo_s3_buckets
", "IdentifierType": "Prefix", "Identifiers": [ "s3://amzn-s3-demo-bucket1/","s3://amzn-s3-demo-bucket2/
" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup
", "IdentifierType": "Group", "Identifiers": [ "AdminGroup
" ] }] } } }Parametro Descrizione "AuthorizationConfiguration":
Obbligatorio.
"EmrFsConfiguration":
Obbligatorio. Contiene mappature dei ruoli.
"RoleMappings":
Obbligatorio. Contiene una o più definizioni di mappatura dei ruoli. Le mappature dei ruoli vengono valutate dall'alto verso il basso nell'ordine in cui vengono visualizzate. Se una mappatura dei ruoli viene valutata come true (vera) per una chiamata EMRFS per i dati in Amazon S3, non vengono valutate altre mappature dei ruoli ed EMRFS utilizza il ruolo IAM specificato per la richiesta. Le mappature dei ruoli sono costituite dai parametri obbligatori seguenti:
"Role":
Specifica l'identificatore ARN di un ruolo IAM nel formato
arn:aws:iam::
. Questo è il ruolo IAM che Amazon EMR assume se la richiesta EMRFS ad Amazon S3 corrisponde a uno degliaccount-id
:role/role-name
Identifiers
specificato."IdentifierType":
Il valore può essere uno dei seguenti:
"User"
specifica che gli identificatori sono uno o più utenti Hadoop, i quali possono essere utenti di account Linux o entità Kerberos. Quando la richiesta EMRFS viene originata dall'utente o dagli utenti specificati, viene assunto il ruolo IAM."Prefix"
specifica che l'identificatore è un percorso Amazon S3. Il ruolo IAM viene assunto per le chiamate alla posizione o alle posizioni con i prefissi specificati. Ad esempio, il prefissos3://amzn-s3-demo-bucket/
corrisponde as3://amzn-s3-demo-bucket/mydir
es3://amzn-s3-demo-bucket/yetanotherdir
."Group"
specifica che gli identificatori sono uno o più Gruppi Hadoop. Il ruolo IAM viene assunto se la richiesta proviene da un utente nel gruppo o nei gruppi specificati.
"Identifiers":
Specifica uno o più identificatori del tipo di identificatore appropriato. Separa più identificatori con virgole senza spazi.
-
Utilizzare il comando
aws emr create-cluster
per creare un cluster e specificare la configurazione di sicurezza creata nella fase precedente.L'esempio seguente crea un cluster con le principali applicazioni Hadoop di default installate. Il cluster utilizza la configurazione di sicurezza creata sopra
EMRFS_Roles_Security_Configuration
e utilizza anche un ruolo Amazon EMR personalizzato per EC2EC2_Role_EMR_Restrict_S3
, che viene specificato utilizzando l'InstanceProfile
argomento del--ec2-attributes
parametro.Nota
I caratteri di continuazione della riga Linux (\) sono inclusi per questioni di leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).
aws emr create-cluster --name
MyEmrFsS3RolesCluster
\ --release-labelemr-7.6.0
--ec2-attributes InstanceProfile=EC2_Role_EMR_Restrict_S3
,KeyName=MyKey
\ --instance-typem5.xlarge
--instance-count3
\ --security-configurationEMRFS_Roles_Security_Configuration