使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何解决 Amazon ECS 中的“An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation”错误?

1 分钟阅读
0

当我尝试在 Amazon Elastic Container Service (Amazon ECS) 中运行 AWS 命令行界面(AWS CLI)命令 execute-command 时,出现以下错误: "An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation: The execute command failed due to an internal error.Try again later".

简短描述

遇到这个错误,可能是由于以下原因:

  • Amazon ECS 任务角色没有运行 execute-command 命令所需的权限。
  • 运行命令的 AWS Identity and Access Management (IAM) 角色或用户没有所需的权限。

**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 Troubleshoot AWS CLI errors。此外,确保您使用的是最新的 AWS CLI 版本

解决方法

检查 Amazon ECS 任务角色权限

Amazon ECS 任务角色没有所需权限时,就会出现此错误。要解决此错误,请创建拥有所需权限的 IAM 策略,然后将该策略附加到 Amazon ECS 任务角色。

  1. 创建以下 IAM 策略
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
          ],
          "Resource": "*"
        }
      ]
    }
    **注意:**确保在 AWS Organizations 级别上不会拒绝这些权限。
  2. 将策略附加到 Amazon ECS 任务角色

在任务级别上进行这些更改可能会有延迟。因此,在将策略附加到任务角色后,请稍等片刻,然后再运行 execute-command 命令。

检查 IAM 用户或角色权限

运行 execute-command 命令的 IAM 用户或角色必须拥有以下权限:

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

如果您仍然遇到错误,请从 GitHub 网站上运行 amazon-ecs-exec-checker 脚本。此脚本允许您检查和验证您的 AWS CLI 环境以及 Amazon ECS 集群或任务。该脚本还会通知您未满足的先决条件

相关信息

使用 ECS Exec

AWS 官方
AWS 官方已更新 7 个月前