Amazon Elastic Container Service(Amazon ECS)에서 AWS Command Line Interface(AWS CLI) execute-command 명령을 실행하려고 하면 다음 오류가 발생합니다.
“ExecuteCommand 작업을 호출하는 동안 오류가 발생했습니다(TargetNotConnectedException). 내부 오류로 인해 실행 명령이 실패했습니다. 나중에 다시 시도하세요”
간략한 설명
다음과 같은 이유로 인해 이 오류가 발생할 수 있습니다.
- Amazon ECS 작업 역할에는 execute-command 명령을 실행하는 데 필요한 권한이 없습니다.
- AWS Identity and Access Management(IAM) 역할 또는 명령을 실행하는 사용자에게 필요한 권한이 없습니다.
참고: 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/*"
}
]
}
그래도 오류가 발생하는 경우, amazon-ecs-exec-checker 스크립트를 실행합니다. 이 스크립트를 사용하면 AWS CLI 환경과 Amazon ECS 클러스터 또는 작업을 확인하고 검증할 수 있습니다. 스크립트는 충족되지 않은 사전 조건에 대해서도 알려줍니다.
관련 정보
ECS Exec 활성화 및 사용