내용으로 건너뛰기

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

2분 분량
0

Amazon Elastic Container Service(Amazon ECS)에서 execute-command 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" 오류 메시지가 표시됩니다.

간략한 설명

"ExecuteCommand" 오류 메시지는 다음과 같은 이유로 표시됩니다.

  • Amazon ECS 작업 역할에는 execute-command를 실행하는 데 필요한 권한이 없습니다.
  • 명령을 실행하는 AWS Identity and Access Management(IAM) 역할 또는 사용자에게 필요한 권한이 없습니다.

해결 방법

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

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 사용자 또는 역할 권한 확인

로그인한 IAM 사용자 ID 및 역할을 확인하려면 다음 명령을 실행합니다.

 aws sts get-caller-identity

execute-command 명령을 실행하는 IAM 사용자 또는 역할에는 다음 권한이 있어야 합니다.

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

새 정책을 연결하거나 이전 권한을 포함하도록 사용자 또는 역할에 대한 기존 정책을 업데이트합니다.

작업 정의에서 pidMode를 작업으로 설정했는지 확인

ECS Exec 세션은 각 프로세스 ID(PID) 네임스페이스마다 하나만 사용할 수 있습니다. 작업에서 PID 네임스페이스를 공유하는 경우 하나의 컨테이너에서만 ECS Exec 세션을 시작할 수 있습니다.

작업 정의에서 readonlyRootFilesystem을 true로 설정했는지 확인

필요한 디렉터리 및 파일을 만들려면 SSM 에이전트에 쓰기 가능한 컨테이너 파일 시스템이 필요합니다. readonlyRootFilesystem 작업 정의 파라미터나 다른 메서드를 사용하여 루트 파일 시스템을 읽기 전용으로 만들 수는 없습니다.

작업 정의를 업데이트한 후에도 오류가 계속 발생하면 GitHub 웹 사이트의 amazon-ecs-exec-checker를 실행하십시오. amazon-ecs-exec-checker 스크립트는 AWS CLI 환경과 Amazon ECS 클러스터 또는 작업을 검증합니다. 또한 이 스크립트는 사전 요구 사항을 충족하지 못할 경우 이를 알려줍니다.

관련 정보

ECS Exec 사용

AWS 공식업데이트됨 3달 전
댓글 없음