Utilisation de rôles liés à un service pour le nettoyage - Amazon EMR

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.

Utilisation de rôles liés à un service pour le nettoyage

Amazon EMR utilise des rôles liés à un AWS Identity and Access Management service (IAM). 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 Configuration des rôles de service IAM pour les autorisations Amazon EMR aux services et ressources AWS ..

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 d’approbation 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

Amazon EMR utilise le AWSServiceRoleForEMRCleanuprô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 AWSServiceRoleForEMRCleanup lié à un service fait confiance aux services suivants pour assumer le rôle :

  • elasticmapreduce.amazonaws.com

La politique d'autorisation des rôles AWSServiceRoleForEMRCleanup liés au service permet à Amazon EMR d'effectuer les actions suivantes sur les ressources spécifiées :

  • Action : DescribeInstances 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

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

Il n'est pas nécessaire de créer le AWSServiceRoleForEMRCleanup rôle manuellement. Lorsque vous lancez un cluster, que ce soit pour la première fois ou lorsque le rôle AWSServiceRoleForEMRCleanup lié au service n'est pas présent, Amazon EMR crée le rôle lié au AWSServiceRoleForEMRCleanup service pour vous. Vous devez disposer des autorisations nécessaires pour créer un rôle lié à un 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 Utilisation de rôles liés à un service pour le nettoyage.

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 AWSServiceRoleForEMRCleanup rôle lié à un service 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 AWSServiceRoleForEMRCleanup 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. Toutefois, vous pouvez 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)

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, sélectionnez Roles (Rôles).

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

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

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

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

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

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

Nettoyer un rôle lié à un service

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

  2. Dans le panneau de navigation, sélectionnez Rôles. Sélectionnez le nom (et non la case à cocher) du rôle AWSServiceRoleForEMRCleanup lié au service.

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

  4. 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 AWSServiceRoleForEMRCleanup 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 AWSServiceRoleForEMRCleanup
  • Mettez fin à tous les clusters de votre compte. Pour plus d’informations, consultez 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)
  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, sélectionnez Rôles. Cochez la case située à côté AWSServiceRoleForEMRCleanup, et non le nom ou la ligne elle-même.

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

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

  5. 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)

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 --role-name AWSServiceRoleForEMRCleanup
  2. 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 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)

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 Dans la demande, spécifiez le nom du AWSServiceRoleForEMRCleanup rôle.

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

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

Amazon EMR prend en charge l'utilisation du rôle AWSServiceRoleForEMRCleanup lié au service dans 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 (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