Amazon Elastic Container Service(Amazon ECS) 또는 AWS Fargate 작업을 실행할 때 ‘ECS was unable to assume the role’이라는 오류가 발생합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
IAM 역할 또는 신뢰 관계를 잘못 구성한 경우 다음 오류가 발생할 수 있습니다.
"ECS was unable to assume the role 'arn:aws:iam::444455556666:role/Admin' that was provided for this task. Please verify that the role being passed has the proper trust relationship and permissions and that your IAM user has permissions to pass this role."
문제를 해결하려면 작업 역할에 올바른 신뢰 정책이 있는지 확인하고 IAM 역할에 필요한 IAM 권한을 사용하는지 확인하십시오.
작업 역할 권한 확인
작업 정의에 IAM 역할의 올바른 권한이 포함되어 있는지 확인하십시오. 작업 역할에 대한 권한을 확인하려면 다음 단계를 완료하십시오.
- IAM 콘솔을 엽니다.
- 탐색 창에서 역할을 선택합니다.
- 작업 정의에 사용할 작업 역할을 선택합니다.
- get-role AWS CLI 명령을 실행하여 작업 역할에 대한 정보를 검토합니다.
aws iam get-role --role-name task-execution-role
참고: task-execution-role을 작업의 IAM 역할 이름으로 바꾸십시오.
작업 역할이 없는 경우 작업 IAM 역할을 만드십시오.
ecs-tasks.amazonaws.com에 대한 신뢰 정책 구성
Amazon ECS 작업이 IAM 역할을 수임하려면 ecs-tasks.amazonaws.com 서비스를 허용하도록 신뢰 정책을 구성하십시오.
다음 단계를 완료하십시오.
-
IAM 콘솔을 엽니다.
-
탐색 창에서 역할을 선택합니다.
-
작업 역할을 선택한 다음, 신뢰 관계를 선택합니다.
-
신뢰 정책에 ecs-tasks.amazonaws.com이 서비스로 포함되어 있는지 확인합니다.
정책 예시:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
ecs-tasks.amazonaws.com을 서비스로 설정하지 않은 경우 신뢰 정책 편집을 선택합니다.
위의 예제 정책으로 정책을 업데이트한 다음, 정책 업데이트를 선택합니다.
-
작업 정의에서 전체 IAM 역할 ARN을 지정합니다. 예를 들어 arn:aws:iam::444455556666:role/ecsTaskRole입니다. 자세한 내용은 콘솔을 사용한 Amazon ECS 작업 정의 업데이트를 참조하십시오.
-
Amazon ECS 작업을 시작하는 IAM 사용자 또는 역할에 iam:PassRole 권한이 있는지 확인합니다.
관련 정보
IAM 역할 문제 해결
Amazon ECS 작업 실행 IAM 역할
Amazon Elastic Container Service ID 및 액세스 문제 해결