¿Cómo soluciono el error “ECS no pudo asumir el rol” al ejecutar las tareas de Amazon ECS?

4 minutos de lectura
0

Aparece el siguiente error cuando ejecuto mis tareas de Amazon Elastic Container Service (Amazon ECS)/AWS Fargate: ECS no pudo asumir el rol “arn:aws:iam::xxxxxxxxxxxx:role/yyyyyyyyyy” que se proporcionó para esta tarea. Compruebe que el rol que se pasa tiene la relación de confianza y los permisos adecuados y que el usuario de IAM tiene permisos para pasar esta función.

Resolución

Este error se produce debido a uno o más de los siguientes motivos:

  • El rol de AWS Identity and Access Management (IAM) de ejecución de tareas o el rol de tarea especificado en la definición de la tarea no existe.
  • El rol de IAM de ejecución de tareas o el rol de tarea especificados en la definición de tarea no tiene la política de relación de confianza correcta.

Comprobar que exista el rol de ejecución de tareas o el rol de tarea

Para comprobar si el rol de ejecución de tareas o el rol de tarea definidos en la definición de tarea existe mediante la consola, haga lo siguiente:

  1. Abra la consola de IAM.
  2. Elija Roles.
  3. Busque en la lista de roles el rol de ejecución de tareas o el rol de tarea que incluyó en la definición de tarea.

Para comprobar si el rol de ejecución de tareas o el rol de tarea existe mediante AWS Command Line Interface (AWS CLI), ejecute el siguiente comando:

Nota: Este comando recupera información sobre el rol de IAM especificado.

aws iam get-role --role-name example-task-execution-role

Nota: Si recibe errores al ejecutar comandos de AWS CLI, asegúrese de que utiliza la versión más reciente de AWS CLI.

Si el rol no existe, aparece el siguiente error:

An error occurred (NoSuchEntity) when calling the GetRole operation: The role with name example-task-execution-role cannot be found.

Si el rol no existe, considere la posibilidad de realizar una de las siguientes acciones:

Comprobar si el rol de ejecución de tareas o el rol de tarea en la definición de tarea tiene la política de relación de confianza correcta

Asegúrese de que la política de relación de confianza para el rol permita el servicio ecs-tasks.amazonaws.com. Esto es necesario para que la tarea de Amazon ECS asuma el rol de IAM especificado.

Para comprobar la política de relación de confianza y actualizarla según sea necesario, haga lo siguiente:

1.    Abra la consola de IAM.

2.    En el panel de navegación, elija Roles (Roles).

3.    Busque en la lista de roles el rol de ejecución de tareas o el rol de tarea que incluyó en su definición de tarea.

4.    Elija el rol.

5.    Elija Trusted relationships (Relaciones de confianza).

6.    Compruebe si la relación de confianza del rol contiene la siguiente política:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ecs-tasks.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

7.    Si la relación de confianza coincide con la política, elija Cancel (Cancelar). De lo contrario, elija Edit trust relationship (Editar la relación de confianza).

8.    Copie la directiva anterior en la ventana Policy Document (Documento de política) y, a continuación, elija Update Trust Policy (Actualizar política de confianza).


Información relacionada

Roles de IAM para tareas

Rol de IAM de ejecución de tareas de Amazon ECS

Solución de problemas de identidad y acceso de Amazon Elastic Container Service

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años