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 작업 역할에 연결하세요.
- 다음 IAM 정책을 생성합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
]
}
참고: AWS 조직 수준에서 이러한 권한이 거부되지 않았는지 확인하세요.
- 정책을 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 사용