Amazon ECS에서 "An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation"라는 오류를 해결하려면 어떻게 해야 하나요?

2분 분량
0

Amazon Elastic Container Service(Amazon ECS)에서 AWS Command Line Interface(AWS CLI) 명령 실행 명령을 실행하려고 하면 다음과 같은 오류가 발생합니다. "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 조직 수준에서 이러한 권한이 거부되지 않았는지 확인하세요.
  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달 전