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 のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、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公式更新しました 1年前
コメントはありません

関連するコンテンツ