

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.

# Configurer les rôles de service IAM pour les autorisations Amazon EMR relatives AWS aux services et aux ressources
<a name="emr-iam-roles"></a>

Amazon EMR et les applications telles que Hadoop et Spark doivent obtenir des autorisation d'accéder aux autres ressources AWS et d'exécuter des actions lors de l'exécution. Chaque cluster Amazon EMR doit avoir un *rôle de service* et un rôle pour le *profil d'instance* Amazon EC2. Pour plus d'informations, consultez [Rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) et [Utilisation des profils d'instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) dans le *Guide de l'utilisateur IAM*. Les politiques IAM attachées à ces rôles fournissent des autorisations au cluster pour interopérer avec d'autres services AWS pour le compte d'un utilisateur.

Un rôle supplémentaire, le rôle Auto Scaling, est nécessaire si votre cluster utilise la scalabilité automatique dans Amazon EMR. Le rôle AWS de service pour les notebooks EMR est requis si vous utilisez des blocs-notes EMR.

Amazon EMR fournit des rôles par défaut et des politiques gérées par défaut qui déterminent les autorisations pour chaque rôle. Les politiques gérées sont créées et mises à jour par AWS, de sorte qu'elles sont mises à jour automatiquement en cas de modification des exigences de service. Consultez [Politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies.html) dans le *Guide de l'utilisateur IAM*.

Si vous créez un cluster ou un bloc-notes pour la première fois dans un compte, les rôles pour Amazon EMR n'existent pas encore. Une fois que vous les avez créés, vous pouvez consulter les rôles, les politiques qui leur sont associées et les autorisations autorisées ou refusées par les politiques dans la console IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)). Vous pouvez spécifier des rôles par défaut à créer et utiliser pour Amazon EMR, vous pouvez créer vos propres rôles et les spécifier individuellement lorsque vous créez un cluster pour personnaliser les autorisations, et vous pouvez spécifier des rôles par défaut à utiliser lors de la création d'un cluster à l'aide de l' AWS CLI. Pour de plus amples informations, veuillez consulter [Personnalisez les rôles IAM avec Amazon EMR](emr-iam-roles-custom.md).

## Modifier des stratégies basées sur une identité pour autoriser à transmettre des rôles de service pour Amazon EMR
<a name="emr-iam-roles-passrole"></a>

Les politiques gérées par défaut d'Amazon EMR avec autorisations complètes intègrent des configurations de sécurité `iam:PassRole`, notamment les suivantes :
+ Les autorisations `iam:PassRole` uniquement pour des rôles Amazon EMR par défaut spécifiques.
+ `iam:PassedToService`conditions qui vous permettent d'utiliser la politique uniquement avec AWS des services spécifiques, tels que `elasticmapreduce.amazonaws.com` et`ec2.amazonaws.com`.

Vous pouvez consulter la version JSON des politiques [Amazon EMRFull AccessPolicy \$1v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRFullAccessPolicy_v2) et [Amazon EMRService Policy\$1v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2) dans la console IAM. Nous vous recommandons de créer de nouveaux clusters avec les politiques gérées v2.

## Résumé du rôle de service
<a name="emr-iam-roles-summary"></a>

Le tableau suivant répertorie les rôles de service IAM associés à Amazon EMR pour une référence rapide.


| Fonction | Rôle par défaut | Description | Stratégie gérée par défaut | 
| --- | --- | --- | --- | 
|  [Rôle de service pour Amazon EMR (rôle EMR)](emr-iam-role.md)  |  `EMR_DefaultRole_V2`  |  Permet à Amazon EMR d'appeler d'autres AWS services en votre nom lors de la mise en service des ressources et de l'exécution d'actions au niveau des services. Ce rôle est obligatoire pour tous les clusters.  |  `AmazonEMRServicePolicy_v2`  Un rôle lié à un service est nécessaire pour demander des instances Spot. Si ce rôle n'existe pas, le rôle de service Amazon EMR doit avoir l'autorisation de le créer ou une erreur d'autorisation se produit. Si vous prévoyez de demander des instances Spot, vous devez mettre à jour cette politique pour inclure une instruction autorisant la création de ce rôle lié à un service. Pour plus d'informations, consultez [Rôle de service pour Amazon EMR (rôle EMR)](emr-iam-role.md) la section « [Rôle lié au service » pour les demandes d'instance Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests) dans le guide de l'*utilisateur Amazon EC2*.    | 
| [Rôle de service pour les instances EC2 de cluster (profil d'instance EC2)](emr-iam-role-for-ec2.md) |  `EMR_EC2_DefaultRole`  |  Les processus applicatifs qui s'exécutent au-dessus de l'écosystème Hadoop sur des instances de cluster utilisent ce rôle lorsqu'ils appellent d'autres AWS services. Pour l'accès aux données dans Amazon S3 à l'aide d'EMRFS, vous pouvez spécifier différents rôles à assumer en fonction de l'emplacement des données dans Amazon S3. Par exemple, plusieurs équipes peuvent accéder à un seul « compte de stockage » de données Amazon S3. Pour de plus amples informations, veuillez consulter [Configuration de rôles IAM pour les demandes EMRFS à Amazon S3](emr-emrfs-iam-roles.md). Ce rôle est obligatoire pour tous les clusters.  |  `AmazonElasticMapReduceforEC2Role`. Pour plus d'informations, consultez [Rôle de service pour les instances EC2 de cluster (profil d'instance EC2)](emr-iam-role-for-ec2.md).  | 
| [Rôle de service pour le dimensionnement automatique dans Amazon EMR (rôle d'Auto Scaling)](emr-iam-role-automatic-scaling.md) |  `EMR_AutoScaling_DefaultRole`  |  Permet des actions supplémentaires pour les environnements à dimensionnement dynamique. Obligatoire uniquement pour les clusters qui utilisent le dimensionnement automatique dans Amazon EMR. Pour de plus amples informations, veuillez consulter [Utilisation du dimensionnement automatique avec une politique personnalisée pour les groupes d'instances dans Amazon EMR](emr-automatic-scaling.md).  |  `AmazonElasticMapReduceforAutoScalingRole`. Pour plus d'informations, consultez [Rôle de service pour le dimensionnement automatique dans Amazon EMR (rôle d'Auto Scaling)](emr-iam-role-automatic-scaling.md).  | 
| [Rôle de service pour Blocs-notes EMR](emr-managed-notebooks-service-role.md) |  `EMR_Notebooks_DefaultRole`  |  Fournit les autorisations dont un bloc-notes EMR a besoin pour accéder à d'autres AWS ressources et effectuer des actions. Nécessaire uniquement si Blocs-notes EMR sont utilisés.  |  `AmazonElasticMapReduceEditorsRole`. Pour plus d'informations, consultez [Rôle de service pour Blocs-notes EMR](emr-managed-notebooks-service-role.md). `S3FullAccessPolicy` est également attaché par défaut. Voici le contenu de cette politique.   JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowS3"
    }
  ]
}
```      | 
| [Rôle lié à un service](using-service-linked-roles.md) | `AWSServiceRoleForEMRCleanup` | Amazon EMR créé automatiquement un rôle lié à un service. Si le service pour Amazon EMR a perdu la capacité de nettoyer les ressources Amazon EC2, Amazon EMR peut utiliser ce rôle pour effectuer le nettoyage. Si un cluster utilise des instances Spot, la stratégie d'autorisation attachée au [Rôle de service pour Amazon EMR (rôle EMR)](emr-iam-role.md) doit autoriser la création d'un rôle lié à un service. Pour de plus amples informations, veuillez consulter [Utilisation de rôles liés à un service pour Amazon EMR](using-service-linked-roles.md). | `AmazonEMRCleanupPolicy` | 

**Topics**
+ [Modifier des stratégies basées sur une identité pour autoriser à transmettre des rôles de service pour Amazon EMR](#emr-iam-roles-passrole)
+ [Résumé du rôle de service](#emr-iam-roles-summary)
+ [Rôles de service IAM utilisés par Amazon EMR](emr-iam-service-roles.md)
+ [Personnalisez les rôles IAM avec Amazon EMR](emr-iam-roles-custom.md)
+ [Configuration de rôles IAM pour les demandes EMRFS à Amazon S3](emr-emrfs-iam-roles.md)
+ [Utiliser des politiques basées sur les ressources pour l'accès Amazon EMR à Glue Data Catalog AWS](emr-iam-roles-glue.md)
+ [Utiliser des rôles IAM avec des applications qui appellent directement AWS des services](emr-iam-roles-calling.md)
+ [Permettre aux utilisateurs et aux groupes de créer et de modifier des rôles](emr-iam-roles-create-permissions.md)

# Rôles de service IAM utilisés par Amazon EMR
<a name="emr-iam-service-roles"></a>

Amazon EMR utilise les rôles de service IAM pour effectuer des actions en votre nom lors du provisionnement des ressources du cluster, de l'exécution des applications, de la mise à l'échelle dynamique des ressources et de la création et de l'exécution de Blocs-notes EMR. Amazon EMR utilise les rôles suivants lorsqu'il interagit avec d'autres services AWS . Chaque rôle a une fonction unique au sein d'Amazon EMR. Les rubriques de cette section décrivent la fonction du rôle et fournissent les rôles et la stratégie d'autorisations par défaut pour chaque rôle.

Si le code d'application de votre cluster appelle directement les AWS services, vous devrez peut-être utiliser le SDK pour spécifier les rôles. Pour de plus amples informations, veuillez consulter [Utiliser des rôles IAM avec des applications qui appellent directement AWS des services](emr-iam-roles-calling.md).

**Topics**
+ [Rôle de service pour Amazon EMR (rôle EMR)](emr-iam-role.md)
+ [Rôle de service pour les instances EC2 de cluster (profil d'instance EC2)](emr-iam-role-for-ec2.md)
+ [Rôle de service pour le dimensionnement automatique dans Amazon EMR (rôle d'Auto Scaling)](emr-iam-role-automatic-scaling.md)
+ [Rôle de service pour Blocs-notes EMR](emr-managed-notebooks-service-role.md)
+ [Utilisation de rôles liés à un service pour Amazon EMR](using-service-linked-roles.md)

# Rôle de service pour Amazon EMR (rôle EMR)
<a name="emr-iam-role"></a>

Le rôle Amazon EMR définit les actions autorisées pour Amazon EMR lorsqu'il alloue des ressources et exécute des tâches de niveau service qui ne sont pas effectuées dans le contexte d'une instance Amazon EC2 exécutée au sein d'un cluster. Par exemple, le rôle de service est utilisé pour mettre en service des instances EC2 lorsqu'un cluster est lancé.
+ Le nom de rôle par défaut est `EMR_DefaultRole_V2`.
+ La politique gérée par défaut limitée à Amazon EMR attachée à `EMR_DefaultRole_V2` est `AmazonEMRServicePolicy_v2`. Cette politique v2 remplace la politique gérée par défaut obsolète, `AmazonElasticMapReduceRole`.

`AmazonEMRServicePolicy_v2` dépend de l'accès limité aux ressources qu'Amazon EMR fournit ou utilise. Lorsque vous utilisez cette politique, vous devez transmettre la balise utilisateur `for-use-with-amazon-emr-managed-policies = true` lors du provisionnement du cluster. Amazon EMR propagera automatiquement ces balises. Vous pouvez également avoir besoin d'ajouter manuellement une balise utilisateur à des types de ressources spécifiques, tels que les groupes de sécurité EC2 qui n'ont pas été créés par Amazon EMR. Consultez [Balisage des ressources pour l'utilisation des politiques gérées](emr-managed-iam-policies.md#manually-tagged-resources).

**Important**  
Amazon EMR utilise cette fonction du service Amazon EMR et le rôle `AWSServiceRoleForEMRCleanup` pour nettoyer les ressources de cluster de votre compte que vous n'utilisez plus, telles que les instances Amazon EC2. Vous devez inclure des actions pour les politiques de rôle afin de supprimer ou de résilier les ressources. Dans le cas contraire, Amazon EMR ne pourra pas effectuer ces actions de nettoyage, et les ressources non utilisées qui restent sur le cluster risquent de générer des coûts.

L'illustration suivante montre le contenu de la politique `AmazonEMRServicePolicy_v2` actuelle. Vous pouvez également voir le contenu actuel de la politique gérée [https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2) sur la console IAM.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateInTaggedNetwork",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:RunInstances",
        "ec2:CreateFleet",
        "ec2:CreateLaunchTemplate",
        "ec2:CreateLaunchTemplateVersion"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:subnet/*",
        "arn:aws:ec2:*:*:security-group/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateWithEMRTaggedLaunchTemplate",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateFleet",
        "ec2:RunInstances",
        "ec2:CreateLaunchTemplateVersion"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:launch-template/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateEMRTaggedLaunchTemplate",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateLaunchTemplate"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:launch-template/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateEMRTaggedInstancesAndVolumes",
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateFleet"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/*",
        "arn:aws:ec2:*:*:volume/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "ResourcesToLaunchEC2",
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateFleet",
        "ec2:CreateLaunchTemplate",
        "ec2:CreateLaunchTemplateVersion"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*",
        "arn:aws:ec2:*::image/ami-*",
        "arn:aws:ec2:*:*:key-pair/*",
        "arn:aws:ec2:*:*:capacity-reservation/*",
        "arn:aws:ec2:*:*:placement-group/pg-*",
        "arn:aws:ec2:*:*:fleet/*",
        "arn:aws:ec2:*:*:dedicated-host/*",
        "arn:aws:resource-groups:*:*:group/*"
      ]
    },
    {
      "Sid": "ManageEMRTaggedResources",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateLaunchTemplateVersion",
        "ec2:DeleteLaunchTemplate",
        "ec2:DeleteNetworkInterface",
        "ec2:ModifyInstanceAttribute",
        "ec2:TerminateInstances"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "ManageTagsOnEMRTaggedResources",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/*",
        "arn:aws:ec2:*:*:volume/*",
        "arn:aws:ec2:*:*:network-interface/*",
        "arn:aws:ec2:*:*:launch-template/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateNetworkInterfaceNeededForPrivateSubnet",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "TagOnCreateTaggedEMRResources",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*",
        "arn:aws:ec2:*:*:instance/*",
        "arn:aws:ec2:*:*:volume/*",
        "arn:aws:ec2:*:*:launch-template/*"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:CreateAction": [
            "RunInstances",
            "CreateFleet",
            "CreateLaunchTemplate",
            "CreateNetworkInterface"
          ]
        }
      }
    },
    {
      "Sid": "TagPlacementGroups",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:placement-group/pg-*"
      ]
    },
    {
      "Sid": "ListActionsForEC2Resources",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeCapacityReservations",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceTypeOfferings",
        "ec2:DescribeLaunchTemplates",
        "ec2:DescribeNetworkAcls",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribePlacementGroups",
        "ec2:DescribeRouteTables",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVolumes",
        "ec2:DescribeVolumeStatus",
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeVpcEndpoints",
        "ec2:DescribeVpcs"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "CreateDefaultSecurityGroupWithEMRTags",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateSecurityGroup"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:security-group/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateDefaultSecurityGroupInVPCWithEMRTags",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateSecurityGroup"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:vpc/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "TagOnCreateDefaultSecurityGroupWithEMRTags",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:security-group/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true",
          "ec2:CreateAction": "CreateSecurityGroup"
        }
      }
    },
    {
      "Sid": "ManageSecurityGroups",
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateEMRPlacementGroups",
      "Effect": "Allow",
      "Action": [
        "ec2:CreatePlacementGroup"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:placement-group/pg-*"
      ]
    },
    {
      "Sid": "DeletePlacementGroups",
      "Effect": "Allow",
      "Action": [
        "ec2:DeletePlacementGroup"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AutoScaling",
      "Effect": "Allow",
      "Action": [
        "application-autoscaling:DeleteScalingPolicy",
        "application-autoscaling:DeregisterScalableTarget",
        "application-autoscaling:DescribeScalableTargets",
        "application-autoscaling:DescribeScalingPolicies",
        "application-autoscaling:PutScalingPolicy",
        "application-autoscaling:RegisterScalableTarget"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "ResourceGroupsForCapacityReservations",
      "Effect": "Allow",
      "Action": [
        "resource-groups:ListGroupResources"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AutoScalingCloudWatch",
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricAlarm",
        "cloudwatch:DeleteAlarms",
        "cloudwatch:DescribeAlarms"
      ],
      "Resource": [
        "arn:aws:cloudwatch:*:*:alarm:*_EMR_Auto_Scaling"
      ]
    },
    {
      "Sid": "PassRoleForAutoScaling",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/EMR_AutoScaling_DefaultRole"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "application-autoscaling.amazonaws.com*"
        }
      }
    },
    {
      "Sid": "PassRoleForEC2",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/EMR_EC2_DefaultRole"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "ec2.amazonaws.com*"
        }
      }
    },
    {
      "Sid": "CreateAndModifyEmrServiceVPCEndpoint",
      "Effect": "Allow",
      "Action": [
        "ec2:ModifyVpcEndpoint",
        "ec2:CreateVpcEndpoint"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:vpc-endpoint/*",
        "arn:aws:ec2:*:*:subnet/*",
        "arn:aws:ec2:*:*:security-group/*",
        "arn:aws:ec2:*:*:vpc/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateEmrServiceVPCEndpoint",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateVpcEndpoint"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:vpc-endpoint/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true",
          "aws:RequestTag/Name": "emr-service-vpce"
        }
      }
    },
    {
      "Sid": "TagEmrServiceVPCEndpoint",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:vpc-endpoint/*"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:CreateAction": "CreateVpcEndpoint",
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true",
          "aws:RequestTag/Name": "emr-service-vpce"
        }
      }
    }
  ]
}
```

------

Votre rôle de service doit utiliser la politique d'approbation suivante.

**Important**  
La politique d'approbation suivante inclut les clés de condition globales [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount), qui limitent les autorisations que vous accordez à Amazon EMR pour des ressources particulières de votre compte. L'utilisation de ces clés peut vous protéger contre [le problème de l'adjoint confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSTSAssumerole",
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/EMRServiceRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticmapreduce:*:123456789012:*"
        }
      }
    }
  ]
}
```

------

# Rôle de service pour les instances EC2 de cluster (profil d'instance EC2)
<a name="emr-iam-role-for-ec2"></a>

Le rôle de service pour les instances EC2 de cluster (également appelé profil d'instance EC2 pour Amazon EMR) est un type spécial de rôle de service qui est attribué à chaque instance EC2 dans un cluster Amazon EMR lors du lancement de l'instance. Les processus d'application qui s'exécutent au-dessus de l'écosystème Hadoop assument ce rôle pour les autorisations permettant d'interagir avec d'autres services AWS .

Pour plus d'informations sur les rôles de service pour les instances EC2, consultez [Utilisation d'un rôle IAM pour accorder des autorisations à des applications s'exécutant sur des instances Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) dans le *Guide de l'utilisateur IAM*.

**Important**  
Le rôle de service par défaut pour les instances EC2 du cluster et la politique gérée AWS par défaut associée `AmazonElasticMapReduceforEC2Role` sont sur le point de devenir obsolètes, aucune politique AWS gérée de remplacement n'étant fournie. Vous devrez créer et spécifier un profil d'instance pour remplacer le rôle obsolète et la politique par défaut.

## Rôle et stratégie gérée par défaut
<a name="emr-ec2-role-default"></a>
+ Le nom de rôle par défaut est `EMR_EC2_DefaultRole`.
+ La politique gérée par `EMR_EC2_DefaultRole` par défaut, `AmazonElasticMapReduceforEC2Role`, arrive en fin de support. Au lieu d'utiliser une politique gérée par défaut pour le profil d'instance EC2, appliquez des politiques basées sur les ressources aux compartiments S3 et aux autres ressources dont Amazon EMR a besoin, ou utilisez votre propre politique gérée par le client avec un rôle IAM comme profil d'instance. Pour de plus amples informations, veuillez consulter [Création d'un rôle de service pour les instances EC2 de cluster avec des autorisations de moindre privilège](#emr-ec2-role-least-privilege).

Vous trouverez ci-dessous le contenu de la version 3 de `AmazonElasticMapReduceforEC2Role`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Action": [
        "cloudwatch:*",
        "dynamodb:*",
        "ec2:Describe*",
        "elasticmapreduce:Describe*",
        "elasticmapreduce:ListBootstrapActions",
        "elasticmapreduce:ListClusters",
        "elasticmapreduce:ListInstanceGroups",
        "elasticmapreduce:ListInstances",
        "elasticmapreduce:ListSteps",
        "kinesis:CreateStream",
        "kinesis:DeleteStream",
        "kinesis:DescribeStream",
        "kinesis:GetRecords",
        "kinesis:GetShardIterator",
        "kinesis:MergeShards",
        "kinesis:PutRecord",
        "kinesis:SplitShard",
        "rds:Describe*",
        "s3:*",
        "sdb:*",
        "sns:*",
        "sqs:*",
        "glue:CreateDatabase",
        "glue:UpdateDatabase",
        "glue:DeleteDatabase",
        "glue:GetDatabase",
        "glue:GetDatabases",
        "glue:CreateTable",
        "glue:UpdateTable",
        "glue:DeleteTable",
        "glue:GetTable",
        "glue:GetTables",
        "glue:GetTableVersions",
        "glue:CreatePartition",
        "glue:BatchCreatePartition",
        "glue:UpdatePartition",
        "glue:DeletePartition",
        "glue:BatchDeletePartition",
        "glue:GetPartition",
        "glue:GetPartitions",
        "glue:BatchGetPartition",
        "glue:CreateUserDefinedFunction",
        "glue:UpdateUserDefinedFunction",
        "glue:DeleteUserDefinedFunction",
        "glue:GetUserDefinedFunction",
        "glue:GetUserDefinedFunctions"
      ],
      "Sid": "AllowCLOUDWATCH"
    }
  ]
}
```

------

Votre rôle de service doit utiliser la politique d'approbation suivante.

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

****  

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

------

## Création d'un rôle de service pour les instances EC2 de cluster avec des autorisations de moindre privilège
<a name="emr-ec2-role-least-privilege"></a>

À titre de bonne pratique, nous vous recommandons vivement de créer un rôle de service pour les instances EC2 du cluster et une politique d'autorisations qui prévoit les autorisations minimales pour les autres AWS services requis par votre application.

La stratégie gérée par défaut, `AmazonElasticMapReduceforEC2Role`, fournit des autorisations qui facilitent le lancement d'un cluster initial. Cependant, `AmazonElasticMapReduceforEC2Role` il est sur le point de devenir obsolète et Amazon EMR ne fournira pas de politique AWS gérée par défaut de remplacement pour le rôle obsolète. Pour lancer un cluster initial, vous devez fournir une politique basée sur les ressources ou sur les identifiants gérée par le client.

Les déclarations de politique suivantes fournissent des exemples d'autorisations requises pour différentes fonctionnalités d'Amazon EMR. Nous vous recommandons d'utiliser ces autorisations afin de créer une stratégie d'autorisations qui restreint l'accès uniquement aux fonctionnalités et aux ressources dont votre cluster a besoin. Tous les exemples de déclarations de politique utilisent la *us-west-2* région et l'identifiant de AWS compte fictif*123456789012*. Remplacez-les par les bonnes informations pour votre cluster.

Pour plus d'informations sur la création et la spécification des rôles personnalisés, consultez [Personnalisez les rôles IAM avec Amazon EMR](emr-iam-roles-custom.md).

**Note**  
Si vous créez un rôle EMR personnalisé pour EC2, suivez le flux de travail de base, qui crée automatiquement un profil d'instance du même nom. Amazon EC2 vous permet de créer des profils d'instance et des rôles avec des noms différents, mais Amazon EMR ne prend pas en charge cette configuration, et il en résulte une erreur « profil d'instance non valide » lorsque vous créez le cluster. 

### Lecture et écriture de données sur Amazon S3 à l'aide d'EMRFS
<a name="emr-ec2-role-EMRFS"></a>

Lorsqu'une application exécutée sur un cluster Amazon EMR référence des données à l'aide du format `s3://mydata`, Amazon EMR utilise le profil d'instance EC2 pour effectuer la demande. Les clusters lisent et écrivent généralement des données sur Amazon S3 de cette manière, et Amazon EMR utilise par défaut les autorisations attachées au rôle de service pour les instances EC2 de cluster. Pour de plus amples informations, veuillez consulter [Configuration de rôles IAM pour les demandes EMRFS à Amazon S3](emr-emrfs-iam-roles.md).

Étant donné que les rôles IAM pour EMRFS basculeront vers les autorisations attachées au rôle de service pour les instances EC2 de cluster, nous vous recommandons, à titre de bonne pratique, d'utiliser les rôles IAM pour EMRFS et de limiter les autorisations EMRFS et Amazon S3 attachées au rôle de service pour les instances EC2 de cluster.

L'exemple de déclaration ci-dessous illustre les autorisations dont EMRFS a besoin pour effectuer des demandes à Amazon S3.
+ *my-data-bucket-in-s3-for-emrfs-reads-and-writes* spécifie le compartiment Amazon S3 dans lequel le cluster lit et écrit les données et tous les sous-dossiers utilisant */\$1*. Ajoutez uniquement les compartiments et les dossiers dont votre application a besoin.
+ La déclaration de politique qui autorise les actions `dynamodb` n'est requise que si la vue cohérente EMRFS est activée. *EmrFSMetadata* spécifie le dossier par défaut pour la vue cohérente EMRFS.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:CreateBucket",
        "s3:DeleteObject",
        "s3:GetBucketVersioning",
        "s3:GetObject",
        "s3:GetObjectTagging",
        "s3:GetObjectVersion",
        "s3:ListBucket",
        "s3:ListBucketMultipartUploads",
        "s3:ListBucketVersions",
        "s3:ListMultipartUploadParts",
        "s3:PutBucketVersioning",
        "s3:PutObject",
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::my-data-bucket-in-s3-for-emrfs-reads-and-writes",
        "arn:aws:s3:::my-data-bucket-in-s3-for-emrfs-reads-and-writes/*"
      ],
      "Sid": "AllowS3Abortmultipartupload"
    },
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:CreateTable",
        "dynamodb:BatchGetItem",
        "dynamodb:BatchWriteItem",
        "dynamodb:PutItem",
        "dynamodb:DescribeTable",
        "dynamodb:DeleteItem",
        "dynamodb:GetItem",
        "dynamodb:Scan",
        "dynamodb:Query",
        "dynamodb:UpdateItem",
        "dynamodb:DeleteTable",
        "dynamodb:UpdateTable"
      ],
      "Resource": [
        "arn:aws:dynamodb:*:123456789012:table/EmrFSMetadata"
      ],
      "Sid": "AllowDYNAMODBCreatetable"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricData",
        "dynamodb:ListTables",
        "s3:ListBucket"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowCLOUDWATCHPutmetricdata"
    },
    {
      "Effect": "Allow",
      "Action": [
        "sqs:GetQueueUrl",
        "sqs:ReceiveMessage",
        "sqs:DeleteQueue",
        "sqs:SendMessage",
        "sqs:CreateQueue"
      ],
      "Resource": [
        "arn:aws:sqs:*:123456789012:EMRFS-Inconsistency-*"
      ],
      "Sid": "AllowSQSGetqueueurl"
    }
  ]
}
```

------

### Archivage des fichiers journaux sur Amazon S3
<a name="emr-ec2-role-s3-logs"></a>

La déclaration de politique suivante permet au cluster Amazon EMR d'archiver les fichiers journaux vers l'emplacement Amazon S3 spécifié. Dans l'exemple ci-dessous, la date de création du cluster a *s3://MyLoggingBucket/MyEMRClusterLogs* été spécifiée à l'aide de l'**emplacement S3 du dossier Log** dans la console, à l'aide de l'`--log-uri` AWS CLI option du ou à l'aide du `LogUri` paramètre de la `RunJobFlow` commande. Pour de plus amples informations, veuillez consulter [Archiver les fichiers journaux sur Amazon S3](emr-plan-debugging.md#emr-plan-debugging-logs-archive).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::MyLoggingBucket/MyEMRClusterLogs/*"
      ],
      "Sid": "AllowS3Putobject"
    }
  ]
}
```

------

### Utilisation du catalogue AWS de données Glue
<a name="emr-ec2-role-glue"></a>

La déclaration de politique suivante autorise les actions requises si vous utilisez le AWS Glue Data Catalog comme métastore pour les applications. *Pour plus d'informations, consultez [les sections Utilisation du catalogue de données AWS Glue comme métastore pour Spark SQL](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-glue.html), [Utilisation du catalogue de données AWS Glue comme métastore pour Hive et Utilisation de Presto avec le](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hive-metastore-glue.html) [catalogue de AWS données Glue dans le guide de mise à jour d'Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto-glue.html).*

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:CreateDatabase",
        "glue:UpdateDatabase",
        "glue:DeleteDatabase",
        "glue:GetDatabase",
        "glue:GetDatabases",
        "glue:CreateTable",
        "glue:UpdateTable",
        "glue:DeleteTable",
        "glue:GetTable",
        "glue:GetTables",
        "glue:GetTableVersions",
        "glue:CreatePartition",
        "glue:BatchCreatePartition",
        "glue:UpdatePartition",
        "glue:DeletePartition",
        "glue:BatchDeletePartition",
        "glue:GetPartition",
        "glue:GetPartitions",
        "glue:BatchGetPartition",
        "glue:CreateUserDefinedFunction",
        "glue:UpdateUserDefinedFunction",
        "glue:DeleteUserDefinedFunction",
        "glue:GetUserDefinedFunction",
        "glue:GetUserDefinedFunctions"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowGLUECreatedatabase"
    }
  ]
}
```

------

# Rôle de service pour le dimensionnement automatique dans Amazon EMR (rôle d'Auto Scaling)
<a name="emr-iam-role-automatic-scaling"></a>

Le rôle d'Auto Scaling pour Amazon EMR a une fonction similaire au rôle de service, mais permet des actions supplémentaires pour les environnements au dimensionnement dynamique.
+ Le nom de rôle par défaut est `EMR_AutoScaling_DefaultRole`.
+ La stratégie gérée par défaut attachée à `EMR_AutoScaling_DefaultRole` est `AmazonElasticMapReduceforAutoScalingRole`.

Le contenu de la version 1 d'`AmazonElasticMapReduceforAutoScalingRole` est indiqué ci-dessous.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "cloudwatch:DescribeAlarms",
        "elasticmapreduce:ListInstanceGroups",
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Sid": "AllowCLOUDWATCHDescribealarms"
    }
  ]
}
```

------

Votre rôle de service doit utiliser la politique d'approbation suivante.

**Important**  
La politique d'approbation suivante inclut les clés de condition globales [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount), qui limitent les autorisations que vous accordez à Amazon EMR pour des ressources particulières de votre compte. L'utilisation de ces clés peut vous protéger contre [le problème de l'adjoint confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/ApplicationAutoScalingEMRRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:application-autoscaling:*:123456789012:scalable-target/*"
        }
      },
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

# Rôle de service pour Blocs-notes EMR
<a name="emr-managed-notebooks-service-role"></a>

Chaque bloc-notes EMR a besoin d'autorisations pour accéder à d'autres AWS ressources et effectuer des actions. Les politiques IAM associées à ce rôle de service autorisent le bloc-notes à interagir avec d'autres AWS services. Lorsque vous créez un bloc-notes à l'aide du AWS Management Console, vous spécifiez un *rôle AWS de service*. Vous pouvez utiliser le rôle par défaut, `EMR_Notebooks_DefaultRole`, ou spécifier un rôle que vous créez. Si un bloc-notes n'a pas été créé auparavant, vous pouvez choisir de créer le rôle par défaut.
+ Le nom de rôle par défaut est `EMR_Notebooks_DefaultRole`.
+ Les politiques gérées par défaut attachées à `EMR_Notebooks_DefaultRole` sont `AmazonElasticMapReduceEditorsRole` et `S3FullAccessPolicy`.

Votre rôle de service doit utiliser la politique d'approbation suivante.

**Important**  
La politique d'approbation suivante inclut les clés de condition globales [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount), qui limitent les autorisations que vous accordez à Amazon EMR pour des ressources particulières de votre compte. L'utilisation de ces clés peut vous protéger contre [le problème de l'adjoint confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/EMRServiceRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticmapreduce:*:123456789012:*"
        }
      },
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

Le contenu de la version 1 de `AmazonElasticMapReduceEditorsRole` est le suivant.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CreateSecurityGroup",
        "ec2:DescribeSecurityGroups",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:ModifyNetworkInterfaceAttribute",
        "ec2:DescribeTags",
        "ec2:DescribeInstances",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs",
        "elasticmapreduce:ListInstances",
        "elasticmapreduce:DescribeCluster",
        "elasticmapreduce:ListSteps"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowEC2Authorizesecuritygroupegress"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*"
      ],
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "aws:elasticmapreduce:editor-id",
            "aws:elasticmapreduce:job-flow-id"
          ]
        }
      },
      "Sid": "AllowEC2Createtags"
    }
  ]
}
```

------

Voici le contenu de `S3FullAccessPolicy`. `S3FullAccessPolicy` permet à votre rôle de service pour Blocs-notes EMR d'effectuer toutes les actions Amazon S3 sur les objets de votre Compte AWS. Lorsque vous créez un rôle de service personnalisé pour Blocs-notes EMR, vous devez lui donner des autorisations Amazon S3.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowS3"
    }
  ]
}
```

------

Vous pouvez limiter l'accès en lecture et en écriture de votre rôle de service à l'emplacement Amazon S3 où vous voulez enregistrer les fichiers de vos blocs-notes. Utilisez l'ensemble minimum d'autorisations Amazon S3 suivant.

```
"s3:PutObject",
"s3:GetObject",
"s3:GetEncryptionConfiguration",
"s3:ListBucket",
"s3:DeleteObject"
```

Si votre compartiment Amazon S3 est chiffré, vous devez inclure les autorisations suivantes pour AWS Key Management Service.

```
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:ReEncryptFrom",
"kms:ReEncryptTo",
"kms:DescribeKey"
```

Lorsque vous liez des référentiels Git à votre bloc-notes et que vous devez créer un secret pour le référentiel, vous devez ajouter l'autorisation `secretsmanager:GetSecretValue` dans la politique IAM attachée à la fonction du service pour les blocs-notes Amazon EMR. Voici un exemple de stratégie : 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

## Autorisations du rôle du service de Blocs-notes EMR
<a name="emr-managed-notebooks-service-role-permissions"></a>

Ce tableau répertorie les actions que les blocs-notes EMR effectuent à l'aide du rôle de service, ainsi que les autorisations nécessaires pour chaque action.


****  

| Action | Permissions | 
| --- | --- | 
| Établir un canal réseau sécurisé entre un bloc-notes et un cluster Amazon EMR, et effectuer les actions de nettoyage nécessaires. |  <pre>"ec2:CreateNetworkInterface", <br />"ec2:CreateNetworkInterfacePermission", <br />"ec2:DeleteNetworkInterface", <br />"ec2:DeleteNetworkInterfacePermission", <br />"ec2:DescribeNetworkInterfaces", <br />"ec2:ModifyNetworkInterfaceAttribute", <br />"ec2:AuthorizeSecurityGroupEgress", <br />"ec2:AuthorizeSecurityGroupIngress", <br />"ec2:CreateSecurityGroup",<br />"ec2:DescribeSecurityGroups", <br />"ec2:RevokeSecurityGroupEgress",<br />"ec2:DescribeTags",<br />"ec2:DescribeInstances",<br />"ec2:DescribeSubnets",<br />"ec2:DescribeVpcs",<br />"elasticmapreduce:ListInstances", <br />"elasticmapreduce:DescribeCluster", <br />"elasticmapreduce:ListSteps"</pre>  | 
| Utiliser les informations d'identification Git stockées dans AWS Secrets Manager pour lier des référentiels Git à un bloc-notes. |  <pre>"secretsmanager:GetSecretValue"</pre>  | 
| Appliquez des AWS balises à l'interface réseau et aux groupes de sécurité par défaut créés par EMR Notebooks lors de la configuration du canal réseau sécurisé. Pour plus d'informations, veuillez consulter la rubrique [Balisage des ressources AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). |  <pre>"ec2:CreateTags"</pre>  | 
| Accédez aux fichiers et aux métadonnées des blocs-notes ou chargez-les sur Amazon S3. |  <pre>"s3:PutObject",<br />"s3:GetObject",<br />"s3:GetEncryptionConfiguration",<br />"s3:ListBucket",<br />"s3:DeleteObject" </pre> Les autorisations suivantes ne sont requises que si vous utilisez un compartiment Amazon S3 chiffré. <pre>"kms:Decrypt",<br />"kms:GenerateDataKey",<br />"kms:ReEncryptFrom",<br />"kms:ReEncryptTo",<br />"kms:DescribeKey"</pre>  | 

## Mises à jour des politiques gérées par EMR Notebooks AWS
<a name="notebooks-slr-updates"></a>

Consultez les détails des mises à jour apportées aux politiques AWS gérées pour les EMR Notebooks depuis le 1er mars 2021.


| Modifier | Description | Date | 
| --- | --- | --- | 
| AmazonElasticMapReduceEditorsRole - Added permissions | Les blocs-notes EMR ont ajouté les autorisations `ec2:describeVPCs` et `elastmicmapreduce:ListSteps` à `AmazonElasticMapReduceEditorsRole`.  | 8 février 2023  | 
| Les blocs-notes EMR ont commencé à suivre les modifications.  |  EMR Notebooks a commencé à suivre les modifications apportées à ses politiques gérées. AWS   | 8 février 2023  | 

# Utilisation de rôles liés à un service pour Amazon EMR
<a name="using-service-linked-roles"></a>

[Amazon EMR utilise des rôles liés à un Gestion des identités et des accès AWS service (IAM).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) Un rôle lié à un service est un type unique de rôle IAM qui est lié directement à Amazon EMR. Les rôles liés à un service sont prédéfinis par Amazon EMR et incluent toutes les autorisations requises par le service pour appeler d'autres AWS services en votre nom.

**Topics**
+ [Utilisation de rôles liés à un service pour Amazon EMR à des fins de nettoyage](using-service-linked-roles-cleanup.md)
+ [Utilisation de rôles liés à un service avec Amazon EMR pour la journalisation anticipée](using-service-linked-roles-wal.md)

Pour plus d'informations sur les autres services qui prennent en charge les rôles liés à un service, consultez la section [AWS Services qui fonctionnent avec IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) et recherchez les services dont la valeur est **Oui** dans la colonne Rôles liés à un **service**. Sélectionnez un **Oui** ayant un lien pour consulter la documentation du rôle lié à un service, pour ce service.

# Utilisation de rôles liés à un service pour Amazon EMR à des fins de nettoyage
<a name="using-service-linked-roles-cleanup"></a>

[Amazon EMR utilise des rôles liés à un Gestion des identités et des accès AWS service (IAM).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) Un rôle lié à un service est un type unique de rôle IAM qui est lié directement à Amazon EMR. Les rôles liés à un service sont prédéfinis par Amazon EMR et incluent toutes les autorisations requises par le service pour appeler d'autres AWS services en votre nom.

Les rôles liés à un service fonctionnent conjointement avec le rôle de service Amazon EMR et le profil d'instance Amazon EC2 pour Amazon EMR. Pour plus d'informations sur le rôle de service et le profil d'instance, consultez la section [Configurer les rôles de service IAM pour les autorisations Amazon EMR relatives AWS aux services et aux ressources](emr-iam-roles.md).

Un rôle lié à un service facilite la configuration d'Amazon EMR, car vous n'avez pas à ajouter manuellement les autorisations nécessaires. Amazon EMR définit les autorisations associées à ses rôles liés aux services et, sauf indication contraire, seul Amazon EMR peut assumer ses rôles. Les autorisations définies comprennent la politique de confiance et la politique d’autorisation. De plus, cette politique d’autorisation ne peut pas être attachée à une autre entité IAM.

Vous ne pouvez supprimer ce rôle lié à un service pour Amazon EMR qu'après avoir supprimé les ressources associées et résilié tous les clusters EMR du compte. Cela protège vos ressources Amazon EMR afin que vous ne puissiez pas supprimer par inadvertance l'autorisation d'accès aux ressources.

## Utilisation de rôles liés à un service pour le nettoyage
<a name="using-service-linked-roles-permissions-cleanup"></a>

Amazon EMR utilise le **AWSServiceRoleForEMRCleanup**rôle basé sur le service pour autoriser Amazon EMR à résilier et à supprimer les ressources Amazon EC2 en votre nom si le rôle lié au service Amazon EMR perd cette fonctionnalité. Amazon EMR crée automatiquement le rôle lié au service lors de la création du cluster s'il n'existe pas déjà.

Le rôle AWSService RoleFor EMRCleanup lié à un service fait confiance aux services suivants pour assumer le rôle :
+ `elasticmapreduce.amazonaws.com`

La politique d'autorisation des rôles AWSService RoleFor EMRCleanup liés au service permet à Amazon EMR d'effectuer les actions suivantes sur les ressources spécifiées :
+ Action : `DescribeInstances` sur `ec2`
+ Action : `DescribeLaunchTemplates` sur `ec2`
+ Action : `DeleteLaunchTemplate` sur `ec2`
+ Action : `DescribeSpotInstanceRequests` sur `ec2`
+ Action : `ModifyInstanceAttribute` sur `ec2`
+ Action : `TerminateInstances` sur `ec2`
+ Action : `CancelSpotInstanceRequests` sur `ec2`
+ Action : `DeleteNetworkInterface` sur `ec2`
+ Action : `DescribeInstanceAttribute` sur `ec2`
+ Action : `DescribeVolumeStatus` sur `ec2`
+ Action : `DescribeVolumes` sur `ec2`
+ Action : `DetachVolume` sur `ec2`
+ Action : `DeleteVolume` sur `ec2`
+ Action : `DescribePlacementGroups` sur `ec2`
+ Action : `DeletePlacementGroup` sur `ec2`

Vous devez configurer les autorisations de manière à permettre à une entité IAM (comme un utilisateur, un groupe ou un rôle) de créer, modifier ou supprimer un rôle lié à un service.

## Création d'un rôle lié à un service pour Amazon EMR
<a name="create-service-linked-role"></a>

Il n'est pas nécessaire de créer le AWSService RoleFor EMRCleanup rôle manuellement. Lorsque vous lancez un cluster, que ce soit pour la première fois ou lorsque le rôle AWSService RoleFor EMRCleanup lié au service n'est pas présent, Amazon EMR crée le rôle lié au AWSService RoleFor EMRCleanup service pour vous. Vous devez disposer des autorisations nécessaires pour créer un rôle lié à un service. Voici un exemple d'instruction qui ajoute cette fonctionnalité à la politique d'autorisations d'une entité IAM (telle qu'un utilisateur, un groupe ou un rôle) : 

Ajoutez l'instruction suivante à la politique d'autorisations pour l'entité IAM qui doit créer le rôle lié à un service.

```
{
             "Sid": "ElasticMapReduceServiceLinkedRole",
             "Effect": "Allow",
             "Action": "iam:CreateServiceLinkedRole",
             "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*",
             "Condition": {
                 "StringEquals": {
                     "iam:AWSServiceName": [
                         "elasticmapreduce.amazonaws.com",
                         "elasticmapreduce.amazonaws.com.rproxy.govskope.us.cn"
                     ]
                 }
             }
 }
```

**Important**  
Si vous avez utilisé Amazon EMR avant le 24 octobre 2017, date à laquelle les rôles liés à un service n'étaient pas pris en charge, Amazon EMR a créé le AWSService RoleFor EMRCleanup rôle lié à un service dans votre compte. Pour plus d'informations, consultez [Un nouveau rôle est apparu dans mon compte IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared).

## Modification d'un rôle lié à un service pour Amazon EMR
<a name="edit-service-linked-role"></a>

Amazon EMR ne vous permet pas de modifier le rôle lié au AWSService RoleFor EMRCleanup service. Une fois que vous avez créé un rôle lié à un service, vous ne pouvez pas modifier le nom du rôle lié à un service car diverses entités peuvent faire référence au rôle lié à un service. Vous pouvez toutefois modifier la description du rôle lié au service à l'aide d'IAM.

### Modification de la description d'un rôle lié à un service (console IAM)
<a name="edit-service-linked-role-iam-console"></a>

Vous pouvez utiliser la console IAM, pour modifier la description d'un rôle lié à un service.

**Pour modifier la description d'un rôle lié à un service (console)**

1. Dans le panneau de navigation de la console IAM, choisissez **Rôles**.

1. Choisissez le nom du rôle à modifier.

1. À droite de **Description du rôle**, choisissez **Modifier**. 

1. Saisissez une nouvelle description dans le champ et sélectionnez **Save changes** (Enregistrer les modifications).

### Modification de la description d'un rôle lié à un service (CLI IAM)
<a name="edit-service-linked-role-iam-cli"></a>

Vous pouvez utiliser les commandes IAM depuis le AWS Command Line Interface pour modifier la description d'un rôle lié à un service.

**Pour changer la description d'un rôle d'un rôle lié à un service (CLI)**

1. (Facultatif) Pour afficher la description actuelle d'un rôle, utilisez les commandes suivantes :

   ```
   $ aws iam get-role --role-name role-name
   ```

   Utilisez le nom du rôle, pas l'ARN, pour faire référence aux rôles avec les commandes CLI. Par exemple, si un rôle a l'ARN : `arn:aws:iam::123456789012:role/myrole`, vous faites référence au rôle en tant que **myrole**.

1. Pour mettre à jour la description d'un rôle lié à un service, utilisez l'une des commandes suivantes :

   ```
   $ aws iam update-role-description --role-name role-name --description description
   ```

### Modification de la description d'un rôle lié à un service (API IAM)
<a name="edit-service-linked-role-iam-api"></a>

Vous pouvez utiliser l'API IAM pour modifier la description d'un rôle lié à un service.

**Pour changer la description d'un rôle lié à un service (API)**

1. (Facultatif) Pour afficher la description actuelle d'un rôle, utilisez la commande suivante :

   API IAM : [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) 

1. Pour mettre à jour la description d'un rôle, utilisez la commande suivante : 

   API IAM : [UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)

## Suppression d'un rôle lié à un service pour Amazon EMR
<a name="delete-service-linked-role"></a>

Si vous n'avez plus besoin d'utiliser une fonctionnalité ou un service nécessitant un rôle lié à un service, nous vous recommandons de supprimer ce rôle lié à un service. De cette façon, vous n'avez aucune entité inutilisée non surveillée ou non gérée activement. Cependant, vous devez nettoyer votre rôle lié à un service avant de pouvoir le supprimer.

### Nettoyage d’un rôle lié à un service
<a name="service-linked-role-review-before-delete"></a>

Avant de pouvoir utiliser IAM pour supprimer un rôle lié à un service, vous devez d'abord confirmer que le rôle lié à un service n'a aucune session active et supprimer toutes les ressources utilisées par le rôle lié à un service.

**Pour vérifier si une session est active pour le rôle lié à un service dans la console IAM**

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

1. Dans le panneau de navigation, choisissez **Rôles**. Sélectionnez le nom (et non la case à cocher) du rôle AWSService RoleFor EMRCleanup lié au service.

1. Sur la page **Résumé** du rôle lié au service sélectionné, choisissez **Access** Advisor.

1. Dans l'onglet **Access Advisor**, consultez l'activité récente pour le rôle lié à un service.
**Note**  
Si vous ne savez pas si Amazon EMR utilise le rôle AWSService RoleFor EMRCleanup lié au service, vous pouvez essayer de le supprimer. Si le service utilise le rôle lié au service, la suppression échoue et vous pouvez afficher les régions dans lesquelles le rôle lié au service est utilisé. Si le rôle lié au service est utilisé, vous devez attendre la fin de la session avant de pouvoir supprimer le rôle lié au service. Vous ne pouvez pas révoquer la session d’un rôle lié à un service. 

**Pour supprimer les ressources Amazon EMR utilisées par le AWSService RoleFor EMRCleanup**
+ Mettez fin à tous les clusters de votre compte. Pour de plus amples informations, veuillez consulter [Mettre fin à un cluster Amazon EMR en état de démarrage, en cours d'exécution ou en attente](UsingEMR_TerminateJobFlow.md).

### Suppression d'un rôle lié à un service (console IAM)
<a name="delete-service-linked-role-iam-console"></a>

Vous pouvez utiliser la console IAM pour supprimer un rôle lié à un service.

**Pour supprimer un rôle lié à un service (console)**

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

1. Dans le panneau de navigation, choisissez **Rôles**. Cochez la case située à côté AWSService RoleForEMRCleanup, et non le nom ou la ligne elle-même. 

1. Pour les actions sur les **Rôle** en haut de la page, sélectionnez **Supprimer**.

1. Dans la boîte de dialogue de confirmation, passez en revue les données du dernier accès au service, qui indiquent la date à laquelle chacun des rôles sélectionnés a accédé à un AWS service pour la dernière fois. Cela vous permet de confirmer si le rôle est actif actuellement. Pour poursuivre, choisissez **Oui, supprimer**.

1. Consultez les notifications de la console IAM pour surveiller la progression de la suppression du rôle lié à un service. La suppression du rôle lié au service IAM étant asynchrone, une fois que vous avez soumis le rôle lié au service pour suppression, la tâche de suppression peut réussir ou échouer. Si la tâche échoue, vous pouvez choisir **View details** (Afficher les détails) ou **View Resources** (Afficher les ressources) à partir des notifications pour connaître le motif de l'échec de la suppression. Si la suppression échoue parce que certaines ressources du service sont actuellement utilisées par le rôle, la raison de l'échec comprend une liste de ressources.

### Suppression d'un rôle lié à un service (CLI IAM)
<a name="delete-service-linked-role-iam-cli"></a>

Vous pouvez utiliser les commandes IAM depuis le AWS Command Line Interface pour supprimer un rôle lié à un service. Dans la mesure où un rôle lié à un service ne peut pas être supprimé s'il est utilisé ou si des ressources lui sont associées, vous devez envoyer une demande de suppression. Si ces conditions ne sont pas satisfaites, cette demande peut être refusée. 

**Pour supprimer un rôle lié à un service (CLI)**

1. Pour vérifier l'état de la tâche de suppression, vous devez capturer l'information `deletion-task-id` dans la réponse. Tapez la commande suivante pour envoyer une demande de suppression d'un rôle lié à un service :

   ```
   $ aws iam [delete-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-service-linked-role.html) --role-name AWSServiceRoleForEMRCleanup
   ```

1. Tapez la commande suivante pour vérifier l'état de la tâche de suppression :

   ```
   $ aws iam [get-service-linked-role-deletion-status](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-linked-role-deletion-status.html) --deletion-task-id deletion-task-id
   ```

   L’état de la tâche de suppression peut être `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED` ou `FAILED`. Si la suppression échoue, l’appel renvoie le motif de l’échec, afin que vous puissiez apporter une solution.

### Suppression d'un rôle lié à un service (API IAM)
<a name="delete-service-linked-role-iam-api"></a>

Vous pouvez utiliser l’API IAM pour supprimer un rôle lié à un service. Dans la mesure où un rôle lié à un service ne peut pas être supprimé s'il est utilisé ou si des ressources lui sont associées, vous devez envoyer une demande de suppression. Si ces conditions ne sont pas satisfaites, cette demande peut être refusée. 

**Pour supprimer un rôle lié à un service (API)**

1. Pour soumettre une demande de suppression pour un rôle lié à un service, appelez. [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) Dans la demande, spécifiez le nom du AWSService RoleFor EMRCleanup rôle.

   Pour vérifier l'état de la tâche de suppression, vous devez capturer l'information `DeletionTaskId` dans la réponse.

1. Pour vérifier l'état de la suppression, appelez [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html). Dans la demande, spécifiez le `DeletionTaskId`.

   L’état de la tâche de suppression peut être `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED` ou `FAILED`. Si la suppression échoue, l’appel renvoie le motif de l’échec, afin que vous puissiez apporter une solution.

## Régions prises en charge pour AWSService RoleFor EMRCleanup
<a name="emr-slr-regions"></a>

Amazon EMR prend en charge l'utilisation du rôle AWSService RoleFor EMRCleanup lié au service dans les régions suivantes.


****  

| Nom de la région | Identité de la région | Prise en charge dans Amazon EMR | 
| --- | --- | --- | 
| USA Est (Virginie du Nord) | us-east-1 | Oui | 
| USA Est (Ohio) | us-east-2 | Oui | 
| USA Ouest (Californie du Nord) | us-west-1 | Oui | 
| USA Ouest (Oregon) | us-west-2 | Oui | 
| Asie-Pacifique (Mumbai) | ap-south-1 | Oui | 
| Asie-Pacifique (Osaka) | ap-northeast-3 | Oui | 
| Asie-Pacifique (Séoul) | ap-northeast-2 | Oui | 
| Asie-Pacifique (Singapour) | ap-southeast-1 | Oui | 
| Asie-Pacifique (Sydney) | ap-southeast-2 | Oui | 
| Asie-Pacifique (Tokyo) | ap-northeast-1 | Oui | 
| Canada (Centre) | ca-central-1 | Oui | 
| Europe (Francfort) | eu-central-1 | Oui | 
| Europe (Irlande) | eu-west-1 | Oui | 
| Europe (Londres) | eu-west-2 | Oui | 
| Europe (Paris) | eu-west-3 | Oui | 
| Amérique du Sud (São Paulo) | sa-east-1 | Oui | 

# Utilisation de rôles liés à un service avec Amazon EMR pour la journalisation anticipée
<a name="using-service-linked-roles-wal"></a>

[Amazon EMR utilise des rôles liés à un Gestion des identités et des accès AWS service (IAM).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) Un rôle lié à un service est un type unique de rôle IAM qui est lié directement à Amazon EMR. Les rôles liés à un service sont prédéfinis par Amazon EMR et incluent toutes les autorisations requises par le service pour appeler d'autres AWS services en votre nom.

Les rôles liés à un service fonctionnent conjointement avec le rôle de service Amazon EMR et le profil d'instance Amazon EC2 pour Amazon EMR. Pour plus d'informations sur le rôle de service et le profil d'instance, consultez la section [Configurer les rôles de service IAM pour les autorisations Amazon EMR relatives AWS aux services et aux ressources](emr-iam-roles.md).

Un rôle lié à un service facilite la configuration d'Amazon EMR, car vous n'avez pas à ajouter manuellement les autorisations nécessaires. Amazon EMR définit les autorisations associées à ses rôles liés aux services et, sauf indication contraire, seul Amazon EMR peut assumer ses rôles. Les autorisations définies comprennent la politique de confiance et la politique d’autorisation. De plus, cette politique d’autorisation ne peut pas être attachée à une autre entité IAM.

Vous ne pouvez supprimer ce rôle lié à un service pour Amazon EMR qu'après avoir supprimé les ressources associées et résilié tous les clusters EMR du compte. Cela protège vos ressources Amazon EMR afin que vous ne puissiez pas supprimer par inadvertance l'autorisation d'accès aux ressources.

## Autorisations de rôle liées au service pour la journalisation anticipée (WAL)
<a name="using-service-linked-roles-permissions-wal"></a>

Amazon EMR utilise le rôle lié au service **AWSServiceRoleForEMRWAL** pour récupérer l'état d'un cluster. 

Le rôle lié au service AWSService RoleFor EMRWAL fait confiance aux services suivants pour assumer le rôle :
+ `emrwal.amazonaws.com`

La politique [`EMRDescribeClusterPolicyForEMRWAL`](EMRDescribeClusterPolicyForEMRWAL.md)d'autorisations pour le rôle lié à un service permet à Amazon EMR d'effectuer les actions suivantes sur les ressources spécifiées :
+ Action : `DescribeCluster` sur `*`

Vous devez configurer les autorisations pour autoriser une entité IAM (dans ce cas, Amazon EMR WAL) à créer, modifier ou supprimer un rôle lié à un service. Ajoutez les instructions suivantes, le cas échéant, à la politique d'autorisation de votre profil d'instance :

## CreateServiceLinkedRole
<a name="iam-create-wal"></a>

**Pour autoriser une entité IAM à créer le rôle lié au service AWSService RoleFor EMRWAL**

Ajoutez l'instruction suivante à la stratégie d'autorisation de l'entité IAM qui doit créer le rôle lié à un service :

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole",
        "iam:PutRolePolicy"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/emrwal.amazonaws.com*/AWSServiceRoleForEMRWAL*",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName": [
                "emrwal.amazonaws.com",
                "elasticmapreduce.amazonaws.com.rproxy.govskope.us.cn"
            ]
        }
    }
}
```

## UpdateRoleDescription
<a name="iam-update-wal"></a>

**Pour autoriser une entité IAM à modifier la description du rôle lié au service AWSService RoleFor EMRWAL**

Ajoutez l'instruction suivante à la stratégie d'autorisation de l'entité IAM qui doit modifier la description d'un rôle lié à un service :

```
{
    "Effect": "Allow",
    "Action": [
        "iam:UpdateRoleDescription"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/emrwal.amazonaws.com*/AWSServiceRoleForEMRWAL*",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName": [
                "emrwal.amazonaws.com",
                "elasticmapreduce.amazonaws.com.rproxy.govskope.us.cn"
            ]
        }
    }
}
```

## DeleteServiceLinkedRole
<a name="iam-delete-wal"></a>

**Pour autoriser une entité IAM à supprimer le rôle lié au service AWSService RoleFor EMRWAL**

Ajoutez l'instruction suivante à la stratégie d'autorisation de l'entité IAM qui doit supprimer un rôle lié à un service :

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName": [
                "emrwal.amazonaws.com",
                "elasticmapreduce.amazonaws.com.rproxy.govskope.us.cn"
            ]
        }
    }
}
```

## Création d'un rôle lié à un service pour Amazon EMR
<a name="create-service-linked-role-wal"></a>

Il n'est pas nécessaire de créer manuellement le rôle AWSService RoleFor EMRWAL. Amazon EMR crée automatiquement ce rôle lié à un service lorsque vous créez un espace de travail WAL avec la CLI EMRWAL ou à partir de AWS CloudFormation, ou HBase créera le rôle lié au service lorsque vous configurez un espace de travail pour Amazon EMR WAL et que le rôle lié au service n'existe pas encore. Vous devez disposer des autorisations nécessaires pour créer un rôle lié à un service. Pour des exemples d'instructions qui ajoutent cette fonctionnalité à la politique d'autorisations d'une entité IAM (telle qu'un utilisateur, un groupe ou un rôle), consultez la section précédente,[Autorisations de rôle liées au service pour la journalisation anticipée (WAL)](#using-service-linked-roles-permissions-wal).

## Modification d'un rôle lié à un service pour Amazon EMR
<a name="edit-service-linked-role-wal"></a>

Amazon EMR ne vous permet pas de modifier le rôle lié au service AWSService RoleFor EMRWAL. Une fois que vous avez créé un rôle lié à un service, vous ne pouvez pas modifier le nom du rôle lié à un service car diverses entités peuvent faire référence au rôle lié à un service. Vous pouvez toutefois modifier la description du rôle lié au service à l'aide d'IAM.

### Modification de la description d'un rôle lié à un service (console IAM)
<a name="edit-service-linked-role-iam-console"></a>

Vous pouvez utiliser la console IAM, pour modifier la description d'un rôle lié à un service.

**Pour modifier la description d'un rôle lié à un service (console)**

1. Dans le panneau de navigation de la console IAM, choisissez **Rôles**.

1. Choisissez le nom du rôle à modifier.

1. À droite de **Description du rôle**, choisissez **Modifier**. 

1. Saisissez une nouvelle description dans le champ et sélectionnez **Save changes** (Enregistrer les modifications).

### Modification de la description d'un rôle lié à un service (CLI IAM)
<a name="edit-service-linked-role-iam-cli"></a>

Vous pouvez utiliser les commandes IAM depuis le AWS Command Line Interface pour modifier la description d'un rôle lié à un service.

**Pour changer la description d'un rôle d'un rôle lié à un service (CLI)**

1. (Facultatif) Pour afficher la description actuelle d'un rôle, utilisez les commandes suivantes :

   ```
   $ aws iam get-role --role-name role-name
   ```

   Utilisez le nom du rôle, pas l'ARN, pour faire référence aux rôles avec les commandes CLI. Par exemple, si un rôle a l'ARN : `arn:aws:iam::123456789012:role/myrole`, vous faites référence au rôle en tant que **myrole**.

1. Pour mettre à jour la description d'un rôle lié à un service, utilisez l'une des commandes suivantes :

   ```
   $ aws iam update-role-description --role-name role-name --description description
   ```

### Modification de la description d'un rôle lié à un service (API IAM)
<a name="edit-service-linked-role-iam-api"></a>

Vous pouvez utiliser l'API IAM pour modifier la description d'un rôle lié à un service.

**Pour changer la description d'un rôle lié à un service (API)**

1. (Facultatif) Pour afficher la description actuelle d'un rôle, utilisez la commande suivante :

   API IAM : [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) 

1. Pour mettre à jour la description d'un rôle, utilisez la commande suivante : 

   API IAM : [UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)

## Suppression d'un rôle lié à un service pour Amazon EMR
<a name="delete-service-linked-role-wal"></a>

Si vous n'avez plus besoin d'utiliser une fonctionnalité ou un service nécessitant un rôle lié à un service, nous vous recommandons de supprimer ce rôle lié à un service. De cette façon, vous n'avez aucune entité inutilisée non surveillée ou non gérée activement. Cependant, vous devez nettoyer votre rôle lié à un service avant de pouvoir le supprimer.

**Note**  
L'opération de journalisation par écriture anticipée n'est pas affectée si vous supprimez le rôle AWSService RoleFor EMRWAL, mais Amazon EMR ne supprimera pas automatiquement les journaux créés une fois votre cluster EMR terminé. Par conséquent, vous devrez supprimer manuellement les journaux Amazon EMR WAL si vous supprimez le rôle lié au service.

### Nettoyage d’un rôle lié à un service
<a name="service-linked-role-review-before-delete"></a>

Avant de pouvoir utiliser IAM pour supprimer un rôle lié à un service, vous devez d’abord vérifier qu’aucune session n’est active pour le rôle et supprimer toutes les ressources utilisées par le rôle.

**Pour vérifier si une session est active pour le rôle lié à un service dans la console IAM**

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

1. Dans le panneau de navigation, choisissez **Rôles**. Sélectionnez le nom (et non la case à cocher) du rôle AWSService RoleFor EMRWAL.

1. Sur la page **Récapitulatif** du rôle sélectionné, choisissez **Access Advisor**.

1. Dans l'onglet **Access Advisor**, consultez l'activité récente pour le rôle lié à un service.
**Note**  
Si vous ne savez pas si Amazon EMR utilise le rôle AWSService RoleFor EMRWAL, vous pouvez essayer de supprimer le rôle lié au service. Si le service utilise le rôle, la suppression échoue et vous pouvez afficher les régions dans lesquelles le rôle lié au service est utilisé. Si le rôle lié au service est utilisé, vous devez attendre la fin de la session avant de pouvoir supprimer le rôle lié au service. Vous ne pouvez pas révoquer la session d’un rôle lié à un service. 

**Pour supprimer les ressources Amazon EMR utilisées par l'EMRWAL AWSService RoleFor**
+ Mettez fin à tous les clusters de votre compte. Pour de plus amples informations, veuillez consulter [Mettre fin à un cluster Amazon EMR en état de démarrage, en cours d'exécution ou en attente](UsingEMR_TerminateJobFlow.md).

### Suppression d'un rôle lié à un service (console IAM)
<a name="delete-service-linked-role-iam-console"></a>

Vous pouvez utiliser la console IAM pour supprimer un rôle lié à un service.

**Pour supprimer un rôle lié à un service (console)**

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

1. Dans le panneau de navigation, choisissez **Rôles**. Cochez la case à côté de AWSService RoleFor EMRWAL, et non le nom ou la ligne elle-même. 

1. Pour les actions sur les **Rôle** en haut de la page, sélectionnez **Supprimer**.

1. Dans la boîte de dialogue de confirmation, passez en revue les données du dernier accès au service, qui indiquent la date à laquelle chacun des rôles sélectionnés a accédé à un AWS service pour la dernière fois. Cela vous permet de confirmer si le rôle est actif actuellement. Pour poursuivre, choisissez **Oui, supprimer**.

1. Consultez les notifications de la console IAM pour surveiller la progression de la suppression du rôle lié à un service. Dans la mesure où la suppression du rôle lié à un service IAM est asynchrone, une fois que vous soumettez le rôle afin qu’il soit supprimé, la suppression peut réussir ou échouer. Si la tâche échoue, vous pouvez choisir **View details** (Afficher les détails) ou **View Resources** (Afficher les ressources) à partir des notifications pour connaître le motif de l'échec de la suppression. Si la suppression échoue parce que certaines ressources du service sont actuellement utilisées par le rôle, la raison de l'échec comprend une liste de ressources.

### Suppression d'un rôle lié à un service (CLI IAM)
<a name="delete-service-linked-role-iam-cli"></a>

Vous pouvez utiliser les commandes IAM depuis le AWS Command Line Interface pour supprimer un rôle lié à un service. Dans la mesure où un rôle lié à un service ne peut pas être supprimé s'il est utilisé ou si des ressources lui sont associées, vous devez envoyer une demande de suppression. Si ces conditions ne sont pas satisfaites, cette demande peut être refusée. 

**Pour supprimer un rôle lié à un service (CLI)**

1. Pour vérifier l'état de la tâche de suppression, vous devez capturer l'information `deletion-task-id` dans la réponse. Tapez la commande suivante pour envoyer une demande de suppression d'un rôle lié à un service :

   ```
   $ aws iam [delete-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-service-linked-role.html) --role-name AWSServiceRoleForEMRWAL
   ```

1. Tapez la commande suivante pour vérifier l'état de la tâche de suppression :

   ```
   $ aws iam [get-service-linked-role-deletion-status](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-linked-role-deletion-status.html) --deletion-task-id deletion-task-id
   ```

   L’état de la tâche de suppression peut être `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED` ou `FAILED`. Si la suppression échoue, l’appel renvoie le motif de l’échec, afin que vous puissiez apporter une solution.

### Suppression d'un rôle lié à un service (API IAM)
<a name="delete-service-linked-role-iam-api"></a>

Vous pouvez utiliser l’API IAM pour supprimer un rôle lié à un service. Dans la mesure où un rôle lié à un service ne peut pas être supprimé s'il est utilisé ou si des ressources lui sont associées, vous devez envoyer une demande de suppression. Si ces conditions ne sont pas satisfaites, cette demande peut être refusée. 

**Pour supprimer un rôle lié à un service (API)**

1. Pour soumettre une demande de suppression pour un rôle lié à un service, appelez. [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) Dans la demande, spécifiez le nom du rôle AWSService RoleFor EMRWAL.

   Pour vérifier l'état de la tâche de suppression, vous devez capturer l'information `DeletionTaskId` dans la réponse.

1. Pour vérifier l'état de la suppression, appelez [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html). Dans la demande, spécifiez le `DeletionTaskId`.

   L’état de la tâche de suppression peut être `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED` ou `FAILED`. Si la suppression échoue, l’appel renvoie le motif de l’échec, afin que vous puissiez apporter une solution.

## Régions prises en charge par AWSService RoleFor EMRWAL
<a name="emr-slr-regions-wal"></a>

Amazon EMR prend en charge l'utilisation du rôle lié au service AWSService RoleFor EMRWAL dans les régions suivantes.


****  

| Nom de la région | Identité de la région | Prise en charge dans Amazon EMR | 
| --- | --- | --- | 
| USA Est (Virginie du Nord) | us-east-1 | Oui | 
| USA Est (Ohio) | us-east-2 | Oui | 
| USA Ouest (Californie du Nord) | us-west-1 | Oui | 
| USA Ouest (Oregon) | us-west-2 | Oui | 
| Asie-Pacifique (Mumbai) | ap-south-1 | Oui | 
| Asie-Pacifique (Singapour) | ap-southeast-1 | Oui | 
| Asie-Pacifique (Sydney) | ap-southeast-2 | Oui | 
| Asie-Pacifique (Tokyo) | ap-northeast-1 | Oui | 
| Europe (Francfort) | eu-central-1 | Oui | 
| Europe (Irlande) | eu-west-1 | Oui | 

# Personnalisez les rôles IAM avec Amazon EMR
<a name="emr-iam-roles-custom"></a>

Vous avez la possibilité de personnaliser les fonctions du service IAM et les autorisations pour limiter les privilèges selon vos exigences en matière de sécurité. Pour personnaliser les autorisations, nous vous recommandons de créer de nouveaux rôles et stratégies. Commencez avec les autorisations des stratégies gérées pour les rôles par défaut (par exemple, `AmazonElasticMapReduceforEC2Role` et `AmazonElasticMapReduceRole`). Ensuite, copiez et collez le contenu dans les déclarations de la nouvelle stratégie, modifiez les autorisations selon vos besoins et attachez les stratégies d'autorisations modifiées pour les rôles que vous créez. Vous devez avoir les autorisations IAM appropriées pour travailler avec les rôles et les stratégies. Pour de plus amples informations, veuillez consulter [Permettre aux utilisateurs et aux groupes de créer et de modifier des rôles](emr-iam-roles-create-permissions.md).

Si vous créez un rôle EMR personnalisé pour EC2, suivez le flux de travail de base, qui crée automatiquement un profil d'instance du même nom. Amazon EC2 vous permet de créer des profils d'instance et des rôles avec des noms différents, mais Amazon EMR ne prend pas en charge cette configuration, et il en résulte une erreur « profil d'instance non valide » lorsque vous créez le cluster. 

**Important**  
Les stratégies en ligne ne sont pas automatiquement mises à jour lorsque les exigences de service évoluent. Si vous créez et attachez des politiques en ligne, vous devez savoir que des mises à jour de service peuvent se produire et provoquer soudainement des erreurs d'autorisation. Pour plus d'informations, consultez [Stratégies gérées et stratégies en ligne](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_managed-vs-inline.html) dans le *Guide de l'utilisateur IAM* et [Spécifiez les rôles IAM personnalisés lors de la création d'un cluster](#emr-iam-roles-launch-jobflow).

Pour plus d'informations sur la manipulation de rôles IAM, consultez les rubriques suivantes dans le *Guide de l'utilisateur IAM* :
+  [Création d'un rôle pour déléguer des autorisations à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 
+  [Modification d'un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/modifying-role.html) 
+  [Suppression d'un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/deleting-roles.html) 

## Spécifiez les rôles IAM personnalisés lors de la création d'un cluster
<a name="emr-iam-roles-launch-jobflow"></a>

Vous spécifiez le rôle de service pour Amazon EMR et le rôle pour le profil d'instance Amazon EC2 lorsque vous créez un cluster. L'utilisateur qui crée des clusters a besoin d'autorisations pour récupérer et attribuer des rôles aux instances EC2 et Amazon EMR. Dans le cas contraire, l'erreur **Le compte n'est pas autorisé à appeler EC2** se produit. Pour de plus amples informations, veuillez consulter [Permettre aux utilisateurs et aux groupes de créer et de modifier des rôles](emr-iam-roles-create-permissions.md).

### Utiliser la console pour spécifier des rôles personnalisés
<a name="emr-iam-roles-launch-console"></a>

Lorsque vous créez un cluster, vous pouvez spécifier un rôle de service personnalisé pour Amazon EMR, un rôle personnalisé pour le profil d'instance EC2 et un rôle Auto Scaling personnalisé à l'aide des **Options avancées**. Lorsque vous utilisez les **Options rapides**, le rôle de service par défaut et le rôle par défaut du profil d'instance EC2 sont spécifiés. Pour de plus amples informations, veuillez consulter [Rôles de service IAM utilisés par Amazon EMR](emr-iam-service-roles.md).

------
#### [ Console ]

**Pour spécifier des rôles IAM personnalisés avec la console**

Lorsque vous créez un cluster avec la console, vous devez spécifier un rôle de service personnalisé pour Amazon EMR et un rôle personnalisé pour le profil d'instance EC2. Pour de plus amples informations, veuillez consulter [Rôles de service IAM utilisés par Amazon EMR](emr-iam-service-roles.md).

1. [Connectez-vous au et ouvrez la AWS Management Console console Amazon EMR à l'adresse /emr. https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. Sous **EMR sur EC2** dans le volet de navigation de gauche, choisissez **Clusters**, puis **Créer un cluster**.

1. Sous **Configuration de la sécurité et autorisations**, recherchez les champs **Rôle IAM pour le profil d'instance** et **Rôle de service pour Amazon EMR**. Pour chaque type de rôle, sélectionnez un rôle dans la liste. Seuls les rôles dans votre compte ayant la stratégie d'approbation appropriée pour ce type de rôle sont répertoriés.

1. Choisissez toutes les autres options qui s'appliquent à votre cluster. 

1. Pour lancer cluster, choisissez **Créer un cluster**.

------

### Utilisez le AWS CLI pour spécifier des rôles personnalisés
<a name="emr-iam-roles-launch-cli"></a>

Vous pouvez spécifier un rôle de service pour Amazon EMR et un rôle de service pour les instances EC2 du cluster en utilisant explicitement des options avec la commande `create-cluster` de l' AWS CLI. Utilisez l'option `--service-role` pour spécifier le rôle de service. Utilisez l'argument `InstanceProfile` de l'option `--ec2-attributes` pour spécifier le rôle pour le profil d'instance EC2.

Le rôle Auto Scaling est spécifié à l'aide d'une option séparée `--auto-scaling-role`. Pour de plus amples informations, veuillez consulter [Utilisation du dimensionnement automatique avec une politique personnalisée pour les groupes d'instances dans Amazon EMR](emr-automatic-scaling.md).

**Pour spécifier des rôles IAM personnalisés à l'aide du AWS CLI**
+ La commande suivante spécifie le rôle de service personnalisé, *MyCustomServiceRoleForEMR*et un rôle personnalisé pour le profil d'instance EC2 *MyCustomServiceRoleForClusterEC2Instances*, lors du lancement d'un cluster. Cet exemple utilise le rôle Amazon EMR par défaut.
**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 "Test cluster" --release-label emr-7.12.0 \
  --applications Name=Hive Name=Pig --service-role MyCustomServiceRoleForEMR \
  --ec2-attributes InstanceProfile=MyCustomServiceRoleForClusterEC2Instances,\
  KeyName=myKey --instance-type m5.xlarge --instance-count 3
  ```

Vous pouvez utiliser ces options pour spécifier explicitement les rôles par défaut plutôt qu'à l'aide de l'option `--use-default-roles`. L'option `--use-default-roles` spécifie le rôle de service et le rôle pour le profil d'instance EC2 défini dans le fichier `config` pour l' AWS CLI.

L'exemple suivant illustre le contenu d'un `config` fichier pour AWS CLI les rôles personnalisés spécifiés pour Amazon EMR. Avec ce fichier de configuration, lorsque l'option `--use-default-roles` est spécifiée, le cluster est créé en utilisant les *MyCustomServiceRoleForEMR* et *MyCustomServiceRoleForClusterEC2Instances*. Par défaut, le fichier `config` spécifie le `service_role` par défaut en tant que `AmazonElasticMapReduceRole` et le `instance_profile` par défaut en tant que `EMR_EC2_DefaultRole`.

```
[default]
output = json
region = us-west-1
aws_access_key_id = myAccessKeyID
aws_secret_access_key = mySecretAccessKey
emr =
     service_role = MyCustomServiceRoleForEMR
     instance_profile = MyCustomServiceRoleForClusterEC2Instances
```

# 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
   ```

# Utiliser des politiques basées sur les ressources pour l'accès Amazon EMR à Glue Data Catalog AWS
<a name="emr-iam-roles-glue"></a>

Si vous utilisez AWS Glue conjointement avec Hive, Spark ou Presto dans Amazon EMR, AWS Glue prend en charge les politiques basées sur les ressources afin de contrôler l'accès aux ressources du catalogue de données. Ces ressources comprennent les bases de données, les tables, les connexions et les fonctions définies par l'utilisateur. Pour plus d'informations, consultez [Politiques de ressources AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html) dans le *Guide du développeur AWS Glue*.

Lorsque vous utilisez des politiques basées sur les ressources pour limiter l'accès à AWS Glue depuis Amazon EMR, le principal que vous spécifiez dans la politique d'autorisation doit être l'ARN du rôle associé au profil d'instance EC2 spécifié lors de la création d'un cluster. Par exemple, pour une politique basée sur les ressources attachée à un catalogue, vous pouvez spécifier l'ARN du rôle de service par défaut pour les instances EC2 du cluster, *EMR\$1EC2\$1DefaultRole* en utilisant le `Principal` format illustré dans l'exemple suivant :

```
arn:aws:iam::acct-id:role/EMR_EC2_DefaultRole
```

Il *acct-id* peut être différent de l'identifiant du compte AWS Glue. Cela permet d'accéder aux clusters EMR à partir de comptes différents. Vous pouvez spécifier plusieurs principaux, chacun provenant d'un compte différent.

# Utiliser des rôles IAM avec des applications qui appellent directement AWS des services
<a name="emr-iam-roles-calling"></a>

Les applications exécutées sur les instances EC2 d'un cluster peuvent utiliser le profil d'instance EC2 pour obtenir des informations d'identification de sécurité temporaires lorsqu'elles appellent AWS des services.

Les versions de Hadoop disponibles avec la version Amazon EMR 2.3.0 et les versions ultérieures ont déjà été mises à jour pour utiliser des rôles IAM. Si votre application s'exécute uniquement sur l'architecture Hadoop et n'appelle directement aucun service AWS, elle devrait fonctionner avec les rôles IAM sans aucune modification.

Si votre application appelle AWS directement des services, vous devez la mettre à jour pour tirer parti des rôles IAM. Ainsi, au lieu d'obtenir des informations d'identification du compte depuis `/etc/hadoop/conf/core-site.xml` sur les instances EC2 dans le cluster, votre application utilise un SDK pour accéder aux ressources à l'aide de rôles IAM, ou appelle les métadonnées d'instance EC2 pour obtenir les informations d'identification temporaires.

**Pour accéder aux AWS ressources avec des rôles IAM à l'aide d'un SDK**
+ Les rubriques suivantes montrent comment utiliser plusieurs d'entre elles pour accéder AWS SDKs à des informations d'identification temporaires à l'aide de rôles IAM. Chaque rubrique commence avec une version d'une application qui n'utilise pas de rôles IAM et puis vous guide à travers le processus de conversion de cette application pour utiliser des rôles IAM. 
  +  [Utilisation des rôles IAM pour les instances Amazon EC2 avec le kit SDK pour Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java-dg-roles.html) dans le *Guide du développeur AWS SDK pour Java *. 
  +  [Utilisation des rôles IAM pour les instances Amazon EC2 avec le kit SDK pour .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-roles.html) dans le *Guide du développeur AWS SDK pour .NET *. 
  +  [Utilisation des rôles IAM pour les instances Amazon EC2 avec le kit SDK pour PHP](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/php-dg-roles.html) dans le *Guide du développeur AWS SDK pour PHP *. 
  +  [Utilisation des rôles IAM pour les instances Amazon EC2 avec le kit SDK pour Ruby](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/ruby-dg-roles.html) dans le *Guide du développeur AWS SDK pour Ruby *. 

**Pour obtenir des informations d'identification temporaires à partir de métadonnées d'instance EC2**
+ Appelez l'URL suivante depuis une instance EC2 exécutée avec le rôle IAM spécifié, qui renvoie les informations d'identification de sécurité temporaires associées (AccessKeyId, SecretAccessKey SessionToken, et Expiration). L'exemple suivant utilise le profil d'instance par défaut pour Amazon EMR, `EMR_EC2_DefaultRole`. 

  ```
  GET http://169.254.169.254/latest/meta-data/iam/security-credentials/EMR_EC2_DefaultRole
  ```

Pour plus d'informations sur l'écriture d'applications utilisant des rôles IAM, consultez [Accorder l'accès AWS aux ressources aux applications qui s'exécutent sur des instances Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html).

Pour plus d'informations sur les informations d'identification temporaires, consultez [Utilisation des informations d'identification temporaires](https://docs.aws.amazon.com/STS/latest/UsingSTS/using-temp-creds.html) dans le guide *Utilisation des informations d'identification temporaires*. 

# Permettre aux utilisateurs et aux groupes de créer et de modifier des rôles
<a name="emr-iam-roles-create-permissions"></a>

Les principaux IAM (utilisateurs et groupes) qui créent, modifient, et spécifient les rôles pour un cluster, y compris les rôles par défaut, doivent être autorisés à effectuer les actions suivantes. Pour en savoir plus sur chaque action, consultez [Actions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html) dans la *Référence API IAM*.
+ `iam:CreateRole`
+ `iam:PutRolePolicy`
+ `iam:CreateInstanceProfile`
+ `iam:AddRoleToInstanceProfile`
+ `iam:ListRoles`
+ `iam:GetPolicy`
+ `iam:GetInstanceProfile`
+ `iam:GetPolicyVersion`
+ `iam:AttachRolePolicy`
+ `iam:PassRole`

L'autorisation `iam:PassRole` permet la création de cluster. Les autorisations restantes autorisent la création des rôles par défaut.

Pour en savoir plus sur l'attribution d'autorisations à un utilisateur, consultez [Modification des autorisations d'un utilisateur](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) dans le *Guide de l'utilisateur IAM*.