Amazon ECS 작업을 실행할 때 “ECS가 역할을 수임할 수 없음” 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 3월 4일

Amazon Elastic Container Service(Amazon ECS)/AWS Fargate 작업을 실행할 때 다음 오류가 발생합니다.

ECS가 이 작업에 대해 제공된 'arn:aws:iam::xxxxxxxxxxxx:role/yyyyyyyy' 역할을 수임할 수 없습니다. 전달되는 역할에 적절한 신뢰 관계 및 권한이 있는지, IAM 사용자에게 이 역할을 전달할 권한이 있는지 확인하십시오.

해결 방법

다음 이유 중 하나 이상으로 인해 이 오류가 발생합니다.

  • 작업 정의에 지정된 작업 실행 AWS Identity and Access Management(IAM) 역할 또는 작업 역할이 존재하지 않습니다.
  • 작업 정의에 지정된 작업 실행 IAM 역할 또는 작업 역할에 올바른 신뢰할 수 있는 관계 정책이 없습니다.

작업 실행 역할 또는 작업 역할이 존재하는지 확인합니다.

콘솔을 사용하여 작업 정의에 정의된 작업 실행 역할 또는 작업 역할이 존재하는지 확인하려면 다음을 수행합니다.

  1. IAM 콘솔을 엽니다.
  2. 역할(Roles)을 선택합니다.
  3. 작업 정의에 포함시킨 작업 실행 역할 또는 작업 역할의 역할 목록을 검색합니다.

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(신뢰 정책 업데이트)를 선택합니다.