Utilisation de rôles liés à un service pour la journalisation en écriture anticipée - 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 la journalisation en écriture anticipée

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.

Autorisations de rôle liées au service pour la journalisation en écriture anticipée (WAL)

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

Le rôle AWSServiceRoleForEMRWAL lié à un service fait confiance aux services suivants pour assumer le rôle :

  • emrwal.amazonaws.com

La politique EMRDescribeClusterPolicyForEMRWALd'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 :

Pour autoriser une entité IAM à créer le rôle lié à un AWSServiceRoleForEMRWAL service

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.cn" ] } } }

Pour autoriser une entité IAM à modifier la description du rôle lié à un AWSServiceRoleForEMRWAL service

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.cn" ] } } }

Pour autoriser une entité IAM à supprimer le rôle lié à un AWSServiceRoleForEMRWAL service

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.cn" ] } } }

Création d'un rôle lié à un service pour Amazon EMR

Il n'est pas nécessaire de créer le AWSServiceRoleForEMRWAL rôle manuellement. 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 depuis 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 en écriture anticipée (WAL).

Modification d'un rôle lié à un service pour Amazon EMR

Amazon EMR ne vous permet pas de modifier le rôle lié au AWSServiceRoleForEMRWAL 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.

Note

L'opération de journalisation par écriture anticipée n'est pas affectée si vous supprimez le AWSServiceRoleForEMRWAL rôle, 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

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

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

  3. Sur la page Récapitulatif du rôle 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 AWSServiceRoleForEMRWAL rôle, 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 AWSServiceRoleForEMRWAL
  • 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é AWSServiceRoleForEMRWAL, 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. 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 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 AWSServiceRoleForEMRWAL
  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 AWSServiceRoleForEMRWAL 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 AWSServiceRoleForEMRWAL

Amazon EMR prend en charge l'utilisation du rôle AWSServiceRoleForEMRWAL 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 (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