

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration de rôles IAM pour les demandes EMRFS à Amazon S3
<a name="emr-emrfs-iam-roles"></a>

**Note**  
La fonctionnalité de mappage de rôle EMRFS présentée sur cette page a été améliorée avec l’introduction d’Amazon S3 Access Grants dans Amazon EMR 6.15.0. Pour une solution de contrôle d’accès évolutive pour vos données dans Amazon S3, nous vous recommandons d’utiliser [S3 Access Grants avec Amazon EMR](emr-access-grants.md).

Lorsqu'une application s'exécutant sur un cluster référence des données à l'aide du format `s3://mydata`, Amazon EMR utilise EMRFS pour effectuer la demande. Pour interagir avec Amazon S3, EMRFS assume les politiques d'autorisation qui sont attachées à votre [profil d'instance Amazon EC2](emr-iam-role-for-ec2.md). Le même profil d'instance Amazon EC2 est utilisé quel que soit l'utilisateur ou le groupe qui exécute l'application ou l'emplacement des données dans Amazon S3. 

Si vous avez un cluster avec plusieurs utilisateurs qui ont besoin de différents niveaux d'accès aux données dans Amazon S3 via EMRFS, vous pouvez définir une configuration de sécurité avec des rôles IAM pour EMRFS. EMRFS peut assumer un rôle de service différent pour les instances EC2 de cluster en fonction de l'utilisateur ou du groupe à l'origine de la demande, ou en fonction de l'emplacement des données dans Amazon S3. Chaque rôle IAM pour EMRFS peut avoir des autorisations différentes pour l'accès aux données dans Amazon S3. Pour plus d'informations sur le rôle de service pour les instances EC2 de cluster, consultez [Rôle de service pour les instances EC2 de cluster (profil d'instance EC2)](emr-iam-role-for-ec2.md).

L'utilisation de rôles IAM personnalisés pour EMRFS est prise en charge dans les versions 5.10.0 et ultérieures d'Amazon EMR. Si vous utilisez une version précédente ou si vous avez d'autres exigences en matière d'autorisation au-delà de ce que proposent les rôles IAM pour EMRFS, vous pouvez créer un fournisseur d'informations d'identification personnalisées à la place. Pour plus d'informations, consultez [Autorisation d'accès aux données EMRFS dans Amazon S3](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-plan-credentialsprovider). 

Lorsque vous utilisez une configuration de sécurité pour spécifier des rôles IAM pour EMRFS, vous définissez des mappages de rôle. Chaque mappage de rôle spécifie un rôle IAM qui correspond aux identifiants. Ces identifiants déterminent la base pour accéder à Amazon S3 via EMRFS. Les identifiants peuvent être des utilisateurs, des groupes ou des préfixes Amazon S3 qui indiquent un emplacement de données. Lorsqu'EMRFS effectue une demande à Amazon S3, si la demande correspond à la base d'accès, EMRFS demande aux instances EC2 de cluster d'assumer le rôle IAM correspondant à la requête. Les autorisations IAM attachées à ce rôle s'appliquent à la place des autorisations IAM attachées au rôle de service pour les instances EC2 de cluster.

Les utilisateurs et les groupes dans un mappage de rôle sont des utilisateurs et des groupes Hadoop qui sont définis sur le cluster. Les utilisateurs et les groupes sont transmis à EMRFS dans le cadre de l'application à l'aide de celle-ci (par exemple, un emprunt d'identité de l'utilisateur YARN). Le préfixe Amazon S3 peut être un spécificateur de compartiment de quelque profondeur que ce soit (par exemple, `s3://amzn-s3-demo-bucket` ou `s3://amzn-s3-demo-bucket/myproject/mydata`). Vous pouvez spécifier plusieurs identificateurs au sein d'un même mappage de rôle, mais ils doivent tous être du même type.

**Important**  
Les rôles IAM pour EMRFS fournissent un isolement au niveau de l'application entre les utilisateurs de l'application. Ils ne fournissent pas d'isolement au niveau de l'hôte entre les utilisateurs sur l'hôte. Tout utilisateur ayant accès au cluster peut contourner l'isolement pour assumer l'un de ces rôles.

Lorsqu'une application de cluster envoie une demande à Amazon S3 via EMRFS, EMRFS évalue les mappages de rôle dans l'ordre descendant dans lequel ils s'affichent dans la configuration de sécurité. Si une demande effectuée via EMRFS ne correspond à aucun identifiant, EMRFS revient à l'utilisation du rôle de service pour les instances EC2 de cluster. Pour cette raison, nous recommandons que les stratégies attachées à ce rôle limitent les autorisations pour Amazon S3. Pour de plus amples informations, veuillez consulter [Rôle de service pour les instances EC2 de cluster (profil d'instance EC2)](emr-iam-role-for-ec2.md).

## Configuration des rôles
<a name="emr-emrfs-iam-roles-role-configuration"></a>

Avant de définir une configuration de sécurité avec des rôles IAM pour EMRFS, planifiez et créez les rôles et les stratégies d'autorisation à attacher aux rôles. Pour plus d'informations, consultez [Comment fonctionnent les rôles pour les instances EC2 ?](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) dans le *Guide de l'utilisateur IAM*. Lorsque vous créez des stratégies d'autorisations, nous vous recommandons de commencer par la stratégie gérée attachée au rôle Amazon EMR par défaut pour EC2 et de modifier cette stratégie en fonction de vos besoins. Le nom du rôle par défaut est `EMR_EC2_DefaultRole` et la stratégie gérée pour modifier la valeur par défaut est `AmazonElasticMapReduceforEC2Role`. Pour de plus amples informations, veuillez consulter [Rôle de service pour les instances EC2 de cluster (profil d'instance EC2)](emr-iam-role-for-ec2.md).

### Mise à jour des politiques d'approbation pour prendre en charge les autorisations de rôle
<a name="emr-emrfs-iam-role-trust-policy"></a>

Chaque rôle qu'EMRFS utilise doit disposer d'une stratégie d'approbation qui permet au rôle Amazon EMR du cluster pour EC2 de l'assumer. De même, le rôle Amazon EMR du cluster pour EC2 doit disposer d'une stratégie d'approbation qui permet aux rôles EMRFS de l'assumer.

L'exemple de stratégie d'approbation suivant est attaché à des rôles pour EMRFS. L'instruction autorise le rôle Amazon EMR par défaut pour qu'EC2 assume le rôle. Par exemple, si vous avez deux rôles EMRFS fictifs, `EMRFSRole_First` et `EMRFSRole_Second`, cette déclaration de stratégie est ajoutée à la stratégie d'approbation des stratégies pour chacun d'entre eux.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/EMR_EC2_DefaultRole",
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

De plus, l'exemple de déclaration de stratégie d'approbation suivant est ajouté à `EMR_EC2_DefaultRole` pour autoriser les deux rôles EMRFS fictifs à l'assumer.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/EMRFSRole_First",
        "arn:aws:iam::123456789012:role/EMRFSRole_Second"
      ],
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

**Pour mettre à jour la stratégie d'approbation d'un rôle IAM**

Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Choisissez **Rôles**, saisissez le nom du rôle dans **Search (Rechercher)**, puis sélectionnez **Role name (Nom de rôle)**.

1. Choisissez **Relations d'approbation**, **Modifier la relation d'approbation**.

1. Ajouter une instruction d'approbation en fonction du **Document de stratégie**, conformément aux directives ci-dessus, puis choisissez **Mettre à jour la stratégie de confiance**.

### Spécification d'un rôle en tant qu'utilisateur de la clé
<a name="emr-emrfs-iam-role-key-user"></a>

Si un rôle permet d'accéder à un emplacement dans Amazon S3 qui est chiffré à l'aide d'une AWS KMS key, assurez-vous que le rôle est spécifié en tant qu'utilisateur clé. Cela donne au rôle l'autorisation d'utiliser la clé KMS. Pour plus d’informations, consultez [Politiques de clé dans AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/key-policies.html#key-policy-default-allow-users) dans le *Guide du développeur AWS Key Management Service *.

## Définition d'une configuration de sécurité avec des rôles IAM pour EMRFS
<a name="emr-emrfs-iam-roles-setup"></a>

**Important**  
Si aucun des rôles IAM pour EMRFS que vous spécifiez ne s'applique, EMRFS bascule vers le rôle Amazon EMR pour EC2. Pensez à personnaliser ce rôle pour limiter les autorisations à Amazon S3 en fonction des besoins de votre application, puis spécifiez ce rôle personnalisé au lieu de `EMR_EC2_DefaultRole` lorsque vous créez un cluster. Pour plus d’informations, consultez [Personnalisez les rôles IAM avec Amazon EMR](emr-iam-roles-custom.md) et [Spécifiez les rôles IAM personnalisés lors de la création d'un cluster](emr-iam-roles-custom.md#emr-iam-roles-launch-jobflow).

**Pour spécifier les rôles IAM pour les demandes EMRFS dans Amazon S3 à l'aide de la console**

1. Créez une configuration de sécurité qui spécifie les mappages de rôle :

   1. Dans la console Amazon EMR, sélectionnez **Configurations de sécurité**, **Créer**.

   1. Dans **Name (Nom)**, saisissez un nom pour la configuration de sécurité. Ce nom est utilisé pour spécifier la configuration de sécurité lorsque vous créez un cluster.

   1. Choisissez **Utiliser des rôles IAM pour les demandes EMRFS à Amazon S3**.

   1. Sélectionnez un **rôle IAM** à appliquer, puis, sous **Base pour l'accès**, sélectionnez un type d'identifiant (**Utilisateurs**, **Groupes** ou **Préfixes S3**) dans la liste et entrez les identifiants correspondants. Si vous utilisez plusieurs identifiants, séparez-les par une virgule sans insérer d'espace. Pour plus d'informations sur chaque type d'identifiant, consultez la [JSON configuration reference](#emrfs-seccfg-json) ci-dessous.

   1. Choisissez **Add role (Ajouter un rôle)** pour configurer des mappages de rôle supplémentaires, comme décrit à l'étape précédente.

   1. Définissez les autres options de la configuration de sécurité selon vos besoins et choisissez **Create (Créer)**. Pour de plus amples informations, veuillez consulter [Créez une configuration de sécurité à l'aide de la console Amazon EMR ou du AWS CLI](emr-create-security-configuration.md).

1. Spécifiez la configuration de sécurité créée précédemment lorsque vous créez un cluster. Pour de plus amples informations, veuillez consulter [Spécifier une configuration de sécurité pour un cluster Amazon EMR](emr-specify-security-configuration.md).

**Pour spécifier les rôles IAM pour les demandes EMRFS adressées à Amazon S3 à l'aide du AWS CLI**

1. Utilisez la commande `aws emr create-security-configuration`, en spécifiant un nom pour la configuration de sécurité et les détails de la configuration de sécurité au format JSON.

   L'exemple de commande ci-dessous crée une configuration de sécurité nommée `EMRFS_Roles_Security_Configuration`. Elle est basée sur une structure JSON dans le fichier `MyEmrfsSecConfig.json`, qui est enregistré dans le répertoire où la commande est exécutée.

   ```
   aws emr create-security-configuration --name EMRFS_Roles_Security_Configuration --security-configuration file://MyEmrFsSecConfig.json.
   ```

   Utilisez les instructions suivantes pour la structure du fichier `MyEmrFsSecConfig.json`. Vous pouvez spécifier cette structure en même temps que les structures pour d'autres options de la configuration de sécurité. Pour de plus amples informations, veuillez consulter [Créez une configuration de sécurité à l'aide de la console Amazon EMR ou du AWS CLI](emr-create-security-configuration.md).

   Vous trouverez ci-dessous un exemple d'extrait JSON permettant de spécifier des rôles IAM personnalisés pour EMRFS dans une configuration de sécurité. Il montre les mappages de rôles pour les trois types d'identifiants différents, suivis d'une référence de paramètre. 

   ```
   {
     "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" ]
         }]
       }
     }
   }
   ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ManagementGuide/emr-emrfs-iam-roles.html)

1. Utilisez la commande `aws emr create-cluster` pour créer un cluster et spécifiez la configuration de sécurité créée à l'étape précédente. 

   L'exemple suivant crée un cluster avec les principales applications Hadoop par défaut installées. Le cluster utilise la configuration de sécurité créée précédemment en tant que `EMRFS_Roles_Security_Configuration` et utilise également un rôle Amazon EMR pour EC2, `EC2_Role_EMR_Restrict_S3`, qui est spécifié à l'aide de l'argument `InstanceProfile` du paramètre `--ec2-attributes`.
**Note**  
Les caractères de continuation de ligne Linux (\$1) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

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