¿Cómo puedo resolver el error “An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation” (Se produjo un error (TargetNotConnectedException) al llamar a la operación ExecuteCommand) en Amazon Elastic Container Service (Amazon ECS)?

Última actualización: 18-03-2022

Cuando intento ejecutar el comando execute-command de AWS Command Line Interface (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” (Se produjo un error (TargetNotConnectedException) al llamar a la operación ExecuteCommand: el comando de ejecución falló debido a un error interno. Vuelva a intentarlo más tarde)

Descripción corta

Es posible que aparezca este error debido a los siguientes motivos:

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

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

Resolución

Comprobación de los permisos del rol de tarea de Amazon Elastic Container Service (Amazon ECS)

Aparece este error cuando el rol de tarea de Amazon Elastic Container Service (Amazon ECS) no tiene los permisos requeridos. Puede resolver este error creando una política de IAM con los permisos requeridos y, a continuación, adjuntando la política al rol de tarea de Amazon Elastic Container Service (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 nieguen en AWS Organizations.

2.    Adjunte la política al rol de tarea de Amazon Elastic Container Service (Amazon ECS).

Puede haber retrasos en la propagación de estos cambios en la tarea. Por lo tanto, espere un momento después de adjuntar la directiva al rol de tarea y, a continuación, intente ejecutar el comando execute-command.

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

Asegúrese de que el usuario o el rol de IAM que ejecuta el comando execute-command tenga 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 sigue apareciendo el error, ejecute el script amazon-ecs-exec-checker. Este script le permite comprobar y validar el entorno de la AWS CLI y el clúster o la tarea de Amazon Elastic Container Service (Amazon ECS). La secuencia de comandos también le notifica sobre el requisito previo que no se cumple.


Enabling and using ECS Exec (Habilitación y uso de ECS Exec)

¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?