Passer au contenu

Comment résoudre l'erreur « ECS was unable to assume the role » lorsque j'exécute des tâches Amazon ECS ?

Lecture de 3 minute(s)
0

Lorsque j'exécute mes tâches Amazon Elastic Container Service (Amazon ECS) ou AWS Fargate, le message d'erreur « ECS was unable to assume the role. »

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.

Si vous avez incorrectement configuré votre rôle IAM ou votre relation d’approbation, le message d'erreur suivant peut s'afficher :

« ECS was unable to assume the role 'arn:aws:iam::444455556666:role/Admin' that was provided for this task. Please verify that the role being passed has the proper trust relationship and permissions and that your IAM user has permissions to pass this role. »

Pour résoudre ce problème, vérifiez que votre rôle de tâche dispose de la politique d’approbation adéquate et confirmez que vous utilisez les autorisations IAM nécessaires pour le rôle IAM.

Vérifier les autorisations relatives à votre rôle de tâche

Assurez-vous que votre définition de tâche inclut les autorisations appropriées pour votre rôle IAM. Pour vérifier les autorisations associées à votre rôle de tâche, procédez comme suit :

  1. Ouvrez la console IAM.
  2. Dans le volet de navigation, sélectionnez Rôles.
  3. Sélectionnez votre rôle de tâche pour votre définition de tâche.
  4. Exécutez la commande get-role de l’AWS CLI pour consulter les informations relatives à votre rôle de tâche :
    aws iam get-role --role-name task-execution-role
    Remarque : Remplacez task-execution-role par le nom de votre rôle IAM pour votre tâche.

Si vous n’utilisez pas de rôle de tâche, créez un rôle IAM de tâche.

Configurer la politique d’approbation pour ecs-tasks.amazonaws.com

Pour que la tâche Amazon ECS assume le rôle IAM, configurez la politique d’approbation afin d'autoriser le service ecs-tasks.amazonaws.com.

Procédez comme suit :

  1. Ouvrez la console IAM.

  2. Dans le volet de navigation, sélectionnez Rôles.

  3. Sélectionnez votre rôle de tâche, puis choisissez Relations d’approbation.

  4. Vérifiez que la politique d’approbation utilise ecs-tasks.amazonaws.com comme service.
    Exemple de politique :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "Service": "ecs-tasks.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
  5. Si ecs-tasks.amazonaws.com n’est pas défini comme service, choisissez Modifier la politique d’approbation.
    Mettez à jour la politique à l'aide de l'exemple de politique ci-dessus, puis choisissez Mettre à jour la politique.

  6. Dans votre définition de tâche, spécifiez l'ARN complet du rôle IAM. Par exemple, arn:aws:iam::444455556666:role/ecsTaskRole. Pour plus d'informations, consultez Mettre à jour une définition de tâche Amazon ECS à l'aide de la console.

  7. Assurez-vous que l'utilisateur ou le rôle IAM qui lance la tâche Amazon ECS dispose de l'autorisation iam:PassRole.

Informations connexes

Résoudre les problèmes liés aux rôles IAM

Rôle IAM d'exécution de tâche Amazon ECS

Résolution des problèmes d'identité et d'accès à Amazon Elastic Container Service

AWS OFFICIELA mis à jour il y a 6 mois