¿Cómo soluciono el error «An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation» en Amazon ECS?

3 minutos de lectura
0

Cuando intento ejecutar el comando execute-command de la Interfaz de la línea de comandos de AWS (AWS CLI) en Amazon Elastic Container Service (Amazon ECS), aparece el siguiente error: «An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation: The execute command failed due to an internal error. Try again later».

Descripción breve

Es posible que aparezca este error por los siguientes motivos:

  • El rol de tarea de Amazon ECS no tiene los permisos necesarios para ejecutar el comando execute-command.
  • El rol o el usuario de AWS Identity and Access Management (IAM) que ejecuta el comando no tiene los permisos necesarios.

Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulte Errores de solución de problemas de la AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Resolución

Comprobación de los permisos del rol de tarea de Amazon ECS

Se muestra este error cuando el rol de tarea de Amazon ECS no tiene los permisos necesarios. Para resolver este error, cree una política de IAM con los permisos necesarios y, a continuación, adjunte la política al rol de tarea de Amazon ECS.

  1. Cree la siguiente política de IAM:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
          ],
          "Resource": "*"
        }
      ]
    }
    Nota: Asegúrese de que estos permisos no se denieguen a nivel de AWS Organizations.
  2. Adjunte la política al rol de tarea de Amazon ECS.

Es posible que se produzcan retrasos a la hora de realizar estos cambios a nivel de tarea. Por lo tanto, espere un tiempo después de adjuntar la política al rol de tarea y, a continuación, ejecute el comando execute-command.

Comprobación de los permisos de usuario o rol de IAM

El usuario o rol de IAM que ejecuta el comando execute-command debe tener los siguientes permisos:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:ExecuteCommand",
      "Resource": "arn:aws:ecs:example-region:example-arn:cluster/example-cluster/*"
    }
  ]
}

Si el error persiste, ejecute el script amazon-ecs-exec-checker desde el sitio web de GitHub. Este script le permite comprobar y validar el entorno de la AWS CLI y el clúster o la tarea de Amazon ECS. El script también le notifica sobre el requisito previo que no se ha cumplido.

Información relacionada

Uso de ECS Exec

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año