Saltar al contenido

¿Cómo soluciono el error "ECS was unable to assume the role" cuando ejecuto tareas de Amazon ECS?

3 minutos de lectura
0

Cuando ejecuto mis tareas de Amazon Elastic Container Service (Amazon ECS) o AWS Fargate, recibo el error "ECS was unable to assume the role."

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Si configuraste incorrectamente tu rol de IAM o tu relación de confianza, es posible que recibas el siguiente error:

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

Para resolverlo, comprueba que tu rol de tarea tenga la política de confianza correcta y confirma que utilizas los permisos de IAM necesarios para el rol de IAM.

Comprobación de los permisos de los roles de tareas

Asegúrate de que la definición de la tarea incluya los permisos correctos para tu rol de IAM. Para comprobar los permisos de tu rol de tarea, sigue estos pasos:

  1. Abre la consola de IAM.
  2. En el panel de navegación, selecciona Roles.
  3. Selecciona el rol de la tarea para la definición de la tarea.
  4. Ejecuta el comando get-role de la AWS CLI para revisar la información sobre tu rol de la tarea:
    aws iam get-role --role-name task-execution-role
    Nota: Sustituye task-execution-role por el nombre de tu rol de IAM para la tarea.

Si no tienes un rol de tarea, crea un rol de IAM de tarea.

Configuración de la política de confianza para ecs-tasks.amazonaws.com

Para que la tarea de Amazon ECS asuma el rol de IAM, configura la política de confianza para permitir el servicio ecs-tasks.amazonaws.com.

Sigue estos pasos:

  1. Abre la consola de IAM.

  2. En el panel de navegación, selecciona Roles.

  3. Selecciona tu rol de tarea y, a continuación, elige Relaciones de confianza.

  4. Comprueba que la política de confianza tenga ecs-tasks.amazonaws.com como servicio.
    Ejemplo de política:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "Service": "ecs-tasks.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
  5. Si no tienes ecs-tasks.amazonaws.com configurado como servicio, selecciona Editar política de confianza.
    Actualiza la política con la política de ejemplo anterior y, a continuación, selecciona Actualizar política.

  6. En la definición de la tarea, especifica el ARN completo del rol de IAM. Por ejemplo, arn:aws:iam::444455556666:role/ecsTaskRole. Para obtener más información, consulta Actualización de una definición de tarea de Amazon ECS mediante la consola.

  7. Asegúrate de que el usuario o rol de IAM que lanza la tarea de Amazon ECS tenga el permiso iam:PassRole.

Información relacionada

Solucionar problemas de roles de IAM

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 AWSActualizada hace 7 meses