Configurazione IAM dei ruoli per EMRFS le richieste ad Amazon S3 - 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à.

Configurazione IAM dei ruoli per EMRFS le richieste ad Amazon S3

Nota

La funzionalità di mappatura dei EMRFS ruoli descritta in questa pagina è stata migliorata con l'introduzione di Amazon S3 Access Grants in EMR Amazon 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 s3://mydata formato, Amazon EMR lo utilizza EMRFS per effettuare la richiesta. Per interagire con Amazon S3, EMRFS presuppone le politiche di autorizzazione allegate al profilo dell'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.

Se disponi di un cluster con più utenti che necessitano di diversi livelli di accesso ai dati in Amazon S3 tramiteEMRFS, puoi configurare una configurazione di sicurezza con IAM ruoli per. EMRFS EMRFSpuò 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 IAM ruolo per EMRFS può avere autorizzazioni diverse per l'accesso ai dati in Amazon S3. Per ulteriori informazioni sul ruolo di servizio per le EC2 istanze di cluster, consulta. Ruolo di servizio per le EC2 istanze del cluster (profilo dell'EC2istanza)

L'utilizzo di IAM ruoli personalizzati per EMRFS è supportato nelle EMR versioni Amazon 5.10.0 e successive. Se utilizzi una versione precedente o hai requisiti diversi da quelli previsti dai IAM ruoli, puoi EMRFS invece creare un provider di credenziali personalizzato. Per ulteriori informazioni, consulta Autorizzazione dell'accesso ai EMRFS dati in Amazon S3.

Quando utilizzi una configurazione di sicurezza per specificare IAM i ruoliEMRFS, configuri le mappature dei ruoli. Ogni mappatura dei ruoli specifica un IAM ruolo che corrisponde agli identificatori. Questi identificatori determinano la base per l'accesso ad Amazon EMRFS S3 tramite. 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 le EC2 istanze del cluster assumono il IAM ruolo corrispondente per la richiesta. Le IAM autorizzazioni associate a quel ruolo si applicano invece delle IAM autorizzazioni 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 vengono trasferiti EMRFS nel contesto dell'applicazione che lo utilizza (ad esempio, l'impersonificazione YARN dell'utente). Il prefisso Amazon S3 può essere un identificatore bucket di qualsiasi profondità (ad esempio, s3://mybucket o s3://mybucket/myproject/mydata). Puoi specificare più identificatori in una singola mappatura di ruoli, ma devono essere tutti dello stesso tipo.

Importante

IAMruoli per EMRFS fornire 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 effettua una richiesta ad Amazon S3 tramiteEMRFS, EMRFS valuta le mappature dei ruoli nell'ordine dall'alto verso il basso in cui appaiono 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 EC2 istanze del cluster (profilo dell'EC2istanza).

Configurazione dei ruoli

Prima di configurare una configurazione di sicurezza con IAM ruoliEMRFS, pianifica e crea i ruoli e le politiche di autorizzazione da associare ai ruoli. Per ulteriori informazioni, vedi Come funzionano i ruoli per EC2 le istanze? nella Guida per l'IAMutente. Quando crei politiche di autorizzazione, ti consigliamo di iniziare con la politica gestita associata al EMR ruolo Amazon predefinito perEC2, quindi di modificare questa politica 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 EC2 istanze del cluster (profilo dell'EC2istanza).

Aggiornamento delle policy di affidabilità per le autorizzazioni del ruolo Assume

Ogni ruolo EMRFS utilizzato deve avere una politica di fiducia che consenta al EMR ruolo Amazon del cluster EC2 di assumerlo. Allo stesso modo, il EMR ruolo Amazon for del cluster EC2 deve avere una politica di fiducia che consenta ai EMRFS ruoli di assumerlo.

Il seguente esempio di politica di fiducia è allegato ai ruoli perEMRFS. L'istruzione consente al EMR ruolo Amazon predefinito EC2 di assumere il ruolo. Ad esempio, se hai due EMRFS ruoli fittizi EMRFSRole_First eEMRFSRole_Second, questa dichiarazione politica viene aggiunta alle politiche di fiducia per ciascuno di essi.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::AWSAcctID:role/EMR_EC2_DefaultRole" }, "Action":"sts:AssumeRole" } ] }

Inoltre, l'esempio seguente di dichiarazione sulla politica di fiducia viene aggiunta alla per consentire EMR_EC2_DefaultRole ai due EMRFS ruoli fittizi di assumerla.

{ "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" } ] }
Per aggiornare la politica di fiducia di un ruolo IAM

Apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/.

  1. Scegliere Roles (Ruoli), immettere il nome del ruolo in Search (Cerca), quindi selezionare il relativo Role name (Nome ruolo).

  2. Scegliere Trust relationships (Relazioni di trust), quindi Edit trust relationship (Modifica relazione di trust).

  3. 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 consente l'accesso a una posizione in Amazon S3 crittografata utilizzando un AWS KMS key, assicurati che il ruolo sia specificato come utente chiave. Ciò consente al ruolo di utilizzare la KMS chiave. Per ulteriori informazioni, consulta Politiche chiave in AWS KMS nella AWS Key Management Service Guida per gli sviluppatori.

Imposta una configurazione di sicurezza con IAM ruoli per EMRFS

Importante

Se nessuno dei IAM ruoli specificati si applica, EMRFS torna al EMR ruolo Amazon perEC2. EMRFS 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 IAM i ruoli e Specificate IAM i ruoli personalizzati quando create un cluster.

Per specificare IAM i ruoli per EMRFS le richieste ad Amazon S3 utilizzando la console
  1. Creare una configurazione di sicurezza che specifichi mappature di ruoli:

    1. Nella EMR console Amazon, seleziona Configurazioni di sicurezza, Crea.

    2. 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.

    3. Scegli Usa IAM i ruoli per EMRFS le richieste ad Amazon S3.

    4. Seleziona un IAMruolo da applicare e in Basis for access seleziona un tipo di identificatore (utenti, gruppi o prefissi S3) dall'elenco e inserisci 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.

    5. Scegliere Add role (Aggiungi ruolo) per configurare ulteriori mappature di ruoli come descritto nella fase precedente.

    6. Configurare altre opzioni per la configurazione di sicurezza come appropriato e scegliere Create (Crea). Per ulteriori informazioni, consulta Creazione di una configurazione di sicurezza.

  2. Specificare la configurazione di sicurezza creata precedentemente alla creazione di un cluster. Per ulteriori informazioni, consulta Impostazione di una configurazione di sicurezza per un cluster.

Per specificare IAM i ruoli per EMRFS le richieste ad Amazon S3 utilizzando AWS CLI
  1. Utilizza il aws emr create-security-configuration comando, specificando un nome per la configurazione di sicurezza e i dettagli della configurazione di sicurezza nel JSON formato.

    L'esempio di comando riportato di seguito crea una configurazione di sicurezza con il nome EMRFS_Roles_Security_Configuration. Si basa su una JSON struttura del 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-configuration file://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 Creazione di una configurazione di sicurezza.

    Di seguito è riportato un JSON frammento di esempio per specificare IAM ruoli personalizzati 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_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "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 risulta vera per una EMRFS chiamata di dati in Amazon S3, non vengono valutate ulteriori mappature dei ruoli EMRFS e utilizza il ruolo specificato per la richiesta. IAM Le mappature dei ruoli sono costituite dai parametri obbligatori seguenti:

       "Role":

    Speciifica l'ARNidentificatore di un ruolo nel formato. IAM arn:aws:iam::account-id:role/role-name Questo è il IAM ruolo che Amazon EMR assume se la EMRFS richiesta ad Amazon S3 corrisponde a uno dei Identifiers valori specificati.

       "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 EMRFS richiesta proviene dall'utente o dagli utenti specificati, viene IAM assunto il ruolo.

    • "Prefix" specifica che l'identificatore è un percorso Amazon S3. Il IAM ruolo viene assunto per le chiamate alla posizione o alle posizioni con i prefissi specificati. Ad esempio, il prefisso s3://mybucket/ corrisponde a s3://mybucket/mydir e s3://mybucket/yetanotherdir.

    • "Group" specifica che gli identificatori sono uno o più Gruppi Hadoop. Il IAM ruolo viene assunto se la richiesta proviene da un utente del gruppo o dei gruppi specificati.

       "Identifiers":

    Specifica uno o più identificatori del tipo di identificatore appropriato. Separa più identificatori con virgole senza spazi.

  2. 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 EMR ruolo Amazon personalizzato per EC2EC2_Role_EMR_Restrict_S3, che viene specificato utilizzando l'InstanceProfileargomento 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, rimuovili o sostituiscili con un accento circonflesso (^).

    aws emr create-cluster --name MyEmrFsS3RolesCluster \ --release-label emr-7.2.0 --ec2-attributes InstanceProfile=EC2_Role_EMR_Restrict_S3,KeyName=MyKey \ --instance-type m5.xlarge --instance-count 3 \ --security-configuration EMRFS_Roles_Security_Configuration