Utilisation du rôle lié à un service pour Amazon EMR
Amazon EMR utilise des rôles liés à un service AWS Identity and Access Management (IAM). Un rôle lié à un service est un type unique de rôle IAM qui est lié directement à Amazon EMR. Le rôle lié à un service est prédéfini par Amazon EMR et inclut les autorisations qu'Amazon EMR requiert pour appeler Amazon EC2 en votre nom afin de nettoyer les ressources du cluster une fois qu'elles ne sont plus utilisées. Le rôle lié à un service fonctionne 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 Configuration des rôles de service IAM pour les autorisations Amazon EMR aux services et ressources AWS..
Amazon EMR définit les autorisations de ce rôle lié à un service et, sauf définition contraire, seul Amazon EMR peut assumer le rôle. Les autorisations définies comprennent la politique d'approbation et la politique d'autorisation. De plus, cette politique d'autorisation ne peut pas être attachée à une autre entité IAM. Vous pouvez supprimer le rôle uniquement après avoir mis fin à tous les clusters EMR du compte.
Pour plus d'informations sur les autres services qui prennent en charge les rôles liés à un service, consultez AWS services that work with IAM (Services AWS qui fonctionnent avec IAM) et recherchez les services avec un Yes (Oui) dans la colonne Service-Linked Role (Rôle lié à un service). Choisissez un Yes (oui) ayant un lien permettant de consulter les détails du rôle pour ce service.
Autorisations du rôle lié à un service pour Amazon EMR
Amazon EMR utilise le rôle AWSServiceRoleForEMRCleanup, qui est un rôle lié à un service qui permet à Amazon EMR de résilier et de supprimer les ressources Amazon EC2 en votre nom si le rôle de service Amazon EMR a perdu cette capacité. Amazon EMR crée le rôle automatiquement lors de la création du cluster s'il n'existe pas déjà.
Le rôle lié à un service AWSServiceRoleForEMRCleanup approuve les services suivants pour endosser le rôle :
-
elasticmapreduce.amazonaws.com
La politique d'autorisations du rôle lié à un service AWSServiceRoleForEMRCleanup permet à Amazon EMR d'effectuer les actions suivantes sur les ressources spécifiées :
Action :
DescribeInstances
surec2
Action :
DescribeSpotInstanceRequests
surec2
Action :
ModifyInstanceAttribute
surec2
Action :
TerminateInstances
surec2
Action :
CancelSpotInstanceRequests
surec2
Action :
DeleteNetworkInterface
surec2
Action :
DescribeInstanceAttribute
surec2
Action :
DescribeVolumeStatus
surec2
Action :
DescribeVolumes
surec2
-
Action :
DetachVolume
surec2
Action :
DeleteVolume
surec2
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.
Pour permettre à une entité IAM de créer des rôles liés à un service AWSServiceRoleForEMRCleanup
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/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } } }
Pour permettre à une entité IAM de modifier la description du rôle lié à un service AWSServiceRoleForEMRCleanup
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/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } } }
Pour permettre à une entité IAM de supprimer des rôles liés à un service AWSServiceRoleForEMRCleanup
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": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } } }
Création d'un rôle lié à un service pour Amazon EMR
Vous n'avez pas besoin de créer manuellement le rôle AWSServiceRoleForEMRCleanup. Lorsque vous lancez un cluster, soit pour la première fois, soit lorsqu'un rôle lié à un service n'est pas présent, Amazon EMR crée le rôle lié à un service pour vous. Vous devez disposer des autorisations de création du rôle lié au service. Pour consulter un exemple d'instruction qui ajoute cette fonctionnalité à la stratégie d'autorisations d'une entité IAM (utilisateur, groupe ou rôle, par exemple), consultez Autorisations du rôle lié à un service pour Amazon EMR.
Important
Si vous utilisiez Amazon EMR avant le 24 octobre 2017, lorsque les rôles liés à un service n'étaient pas pris en charge, il a alors créé le rôle AWSServiceRoleForEMRCleanup dans votre compte. Pour plus d'informations, consultez Un nouveau rôle est apparu dans mon compte IAM.
Modification d'un rôle lié à un service pour Amazon EMR
Amazon EMR ne vous permet pas de modifier le rôle lié à au service AWSServiceRoleForEMRCleanup. Une fois que vous avez créé un rôle lié à un service, vous ne pouvez pas changer le nom du rôle, car plusieurs entités peuvent faire référence à ce rôle. Néanmoins, vous pouvez modifier la description du rôle à l'aide d'IAM.
Modification de la description d'un rôle lié à un service (console IAM)
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)
-
Dans le panneau de navigation de la console IAM, sélectionnez Roles (Rôles).
-
Choisissez le nom du rôle à modifier.
-
À droite de Description du rôle, choisissez Modifier.
-
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)
Vous pouvez utiliser les commandes IAM du 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)
-
(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 quemyrole
. -
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
--descriptiondescription
Modification de la description d'un rôle lié à un service (API IAM)
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)
-
(Facultatif) Pour afficher la description actuelle d'un rôle, utilisez la commande suivante :
API IAM : GetRole
-
Pour mettre à jour la description d'un rôle, utilisez la commande suivante :
API IAM : UpdateRoleDescription
Suppression d'un rôle lié à un service pour Amazon EMR
Si vous n'avez plus besoin d'utiliser une fonction ou un service qui nécessite un rôle lié à un service, nous vous recommandons de supprimer ce rôle. 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
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
Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation, sélectionnez Rôles. Sélectionnez le nom (et non la case à cocher) du rôle AWSServiceRoleForEMRCleanup.
-
Sur la page Récapitulatif du rôle sélectionné, choisissez Access Advisor.
-
Dans l'onglet Access Advisor, consultez l'activité récente pour le rôle lié à un service.
Note
Si vous n'êtes pas certain qu'Amazon EMR utilise le rôle AWSServiceRoleForEMRCleanup, vous pouvez essayer de supprimer ce rôle. Si le service utilise le rôle, la suppression échoue et vous avez accès aux régions dans lesquelles le rôle est utilisé. Si le rôle est utilisé, vous devez attendre que la session se termine avant de pouvoir le supprimer. 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 rôle AWSServiceRoleForEMRCleanup
-
Mettez fin à tous les clusters de votre compte. Pour de plus amples informations, veuillez consulter Arrêter un cluster.
Suppression d'un rôle lié à un service (console IAM)
Vous pouvez utiliser la console IAM pour supprimer un rôle lié à un service.
Pour supprimer un rôle lié à un service (console)
Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation, sélectionnez Rôles. Sélectionnez la case à cocher en regard de AWSServiceRoleForEMRCleanup, et non le nom ou la ligne.
-
Pour les actions sur les Rôle en haut de la page, sélectionnez Supprimer.
-
Dans la boîte de dialogue de confirmation, vérifiez les dernières données consultées dans le service. Elles indiquent quels rôles, parmi ceux sélectionnés, ont accédé en dernier à un service AWS. Cela vous permet de confirmer si le rôle est actif actuellement. Pour poursuivre, choisissez Oui, supprimer.
-
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)
Vous pouvez utiliser les commandes IAM de la 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)
-
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 --role-name AWSServiceRoleForEMRCleanup
-
Tapez la commande suivante pour vérifier l'état de la tâche de suppression :
$
aws iam get-service-linked-role-deletion-status --deletion-task-id
deletion-task-id
L'état de la tâche de suppression peut être
NOT_STARTED
,IN_PROGRESS
,SUCCEEDED
ouFAILED
. 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)
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)
-
Pour envoyer une demande de suppression d'un rôle lié à un service, appelez DeleteServiceLinkedRole. Dans la demande, spécifiez le nom du rôle AWSServiceRoleForEMRCleanup.
Pour vérifier l'état de la tâche de suppression, vous devez capturer l'information
DeletionTaskId
dans la réponse. -
Pour vérifier l'état de la suppression, appelez GetServiceLinkedRoleDeletionStatus. Dans la demande, spécifiez le
DeletionTaskId
.L'état de la tâche de suppression peut être
NOT_STARTED
,IN_PROGRESS
,SUCCEEDED
ouFAILED
. 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 les rôles liés à un service Amazon EMR
Amazon EMR prend en charge l'utilisation des rôles liés à un service vers les régions suivantes.
Nom de la région | Identité de la région | Prise en charge dans Amazon EMR |
---|---|---|
US East (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 (Singapore) | 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 |