배포자동화
[AWS]no identity-based policy allows the ecs:RegisterTaskDefinition action 에러
마손(Mason)
2022. 4. 3. 16:11
나는 GitHub Action을 이용하여 이미지를 빌드하고 ECR로 푸쉬하여 Task Definition을 생성하고 ECS로 배포하는 과정을 자동화하고자 한다. AWS에서 클러스터와 작업정의를 구성하고 GitHub Action에서 만들어진 workflow인 Deploy to ECS를 configure해서 사용중이었다.
그러던 중 다음과 같은 에러를 만났다. 무서운 권한에러이다.
Error: Failed to register task definition in ECS:
User: arn:aws:iam::***:user/mason is not authorized to perform:
ecs:RegisterTaskDefinition on resource: * because no identity-based policy allows the ecs:RegisterTaskDefinition action
Error: User: arn:aws:iam::***:user/mason is not authorized to perform:
ecs:RegisterTaskDefinition on resource: * because no identity-based policy allows the ecs:RegisterTaskDefinition action
너무 무섭지만 해결해보고자했다.
- IAM 권한에서 ecs full access를 허용했다.
- IAM 사용자 (여기서는 mason)에게 거의 모든 권한을 쥐여줬다.
근데 실패했다. 생각해보니 이상했다. 난 루트 사용자인데 왜 권한 에러가 나는가? 팀원과 함께 작업하는 것도 아닌, 모든 것이 내 통제에 있는데 왜 권한이 부족한 것일까? 다양한 공식문서를 통해 IAM에 대해 정독하던 중 든 생각이다.
그러던 중 같이 프로젝트를 진행하던 팀원분에게 물어보았다. 답은 보안자격증명의 Accesskey를 확인해보라 라는 것이었다.
확인해봤더니, 3일전 버지니아에서 사용되었었다. 처음에 만들어놓고 잘 작동할 줄 알았었는데, 그렇지 못한 것이었다. 키를 새로 발급받고 기존의 키를 비활성화 했다. 그리고 GitHub Action으로 들어가 secret의 환경변수를 새로운 키로 적용해주었다.
성공적으로 동작했다.
이 경험으로 인해 다음을 느꼈다.
- 타인과 작업할 때에 IAM권한을 항상 잘 확인해야겠다.
- accesskey가 잘 작동하는지 꼭 확인하자!
- 모르면 비슷한 길을 걸어가고 있는 팀원에게 꼭 물어보자!
- 팀원이 없다면 구글에 치면 나온다!