Amazon Elastic Container Service(Amazon ECS)/AWS Fargate 작업을 실행할 때 다음 오류가 발생합니다.
ECS가 이 작업에 대해 제공된 'arn:aws:iam::xxxxxxxxxxxx:role/yyyyyyyy' 역할을 수임할 수 없습니다. 전달되는 역할에 적절한 신뢰 관계 및 권한이 있는지, IAM 사용자에게 이 역할을 전달할 권한이 있는지 확인하십시오.
해결 방법
다음 이유 중 하나 이상으로 인해 이 오류가 발생합니다.
- 작업 정의에 지정된 작업 실행 AWS Identity and Access Management(IAM) 역할 또는 작업 역할이 존재하지 않습니다.
- 작업 정의에 지정된 작업 실행 IAM 역할 또는 작업 역할에 올바른 신뢰할 수 있는 관계 정책이 없습니다.
작업 실행 역할 또는 작업 역할이 존재하는지 확인합니다.
콘솔을 사용하여 작업 정의에 정의된 작업 실행 역할 또는 작업 역할이 존재하는지 확인하려면 다음을 수행합니다.
- IAM 콘솔을 엽니다.
- **역할(Roles)**을 선택합니다.
- 작업 정의에 포함시킨 작업 실행 역할 또는 작업 역할의 역할 목록을 검색합니다.
AWS Command Line Interface(AWS CLI)를 사용하여 작업 실행 역할 또는 작업 역할이 존재하는지 확인하려면 다음 명령을 실행합니다.
참고: 이 명령은 지정된 IAM 역할에 대한 정보를 검색합니다.
aws iam get-role --role-name example-task-execution-role
참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우, 최신 버전의 AWS CLI를 사용하고 있는지 확인합니다.
역할이 존재하지 않으면 다음 오류가 발생합니다.
An error occurred (NoSuchEntity) when calling the GetRole operation: The role with name example-task-execution-role cannot be found.
역할이 존재하지 않는 경우 다음 중 하나를 수행하는 것이 좋습니다.
작업 정의의 작업 실행 역할 또는 작업 역할에 올바른 신뢰할 수 있는 관계 정책이 있는지 확인합니다.
역할에 대한 신뢰할 수 있는 관계 정책에서 ecs-tasks.amazonaws.com 서비스를 허용하는지 확인하십시오. 이는 Amazon ECS 작업이 지정된 IAM 역할을 수임하는 데 필요합니다.
신뢰 관계 정책을 확인하고 필요에 따라 업데이트하려면 다음을 수행합니다.
1. IAM 콘솔을 엽니다.
2. 탐색 창에서 [Roles]를 선택합니다.
3. 작업 정의에 포함시킨 작업 실행 역할 또는 작업 역할의 역할 목록을 검색합니다.
4. 역할을 선택합니다.
5. **신뢰 관계(Trust relationships)**를 선택합니다.
6. 역할에 대한 신뢰 관계에 다음 정책이 포함되어 있는지 확인합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
7. 신뢰 관계가 정책과 일치하면 **Cancel(취소)**를 선택합니다. 그렇지 않으면 **Edit trust relationship(신뢰 관계 편집)**을 선택합니다.
8. 앞의 정책을 Policy Document(정책 문서) 창에 복사한 다음 **Update Trust Policy(신뢰 정책 업데이트)**를 선택합니다.
관련 정보
작업에 대한 IAM 역할
Amazon ECS 작업 실행 IAM 역할
Amazon Elastic Container Service 자격 증명 및 액세스 문제 해결