[AWS] ECR에 저장된 이미지를 ECS에 배포할때

golony·2021년 11월 25일
0

개발

목록 보기
2/23

배경

  • 토이프로젝트를 ECS Fargate에 배포
  • Github Action으로 ECR 배포까지는 성공
  • ECS 배포를 위한 Task Definition, 클러스터, 서비스 등 작성

현상

ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secrets from ssm: service call has been retried 1 time(s): AccessDeniedException
  • 이미지 Pull에 실패한다는 것은 알겠다.
  • 나중에 알게된 사실이지만 인증실패 가 아니라 unable to retrieve secrets from ssm 이게 문제해결의 실마리였다.

시도 1 : ecsInstanceRole 만들기

  • 참고자료
  • 저 이름을 가진 역할이 필요한건가? 해서 만들어보았다.
  • Task Definition의 작업 실행 IAM 역할을 따라가는 것으로 생각해서 이것이 원인은 아닌것 같았지만, 역시나 해결되지 않았다.

시도 2 : 역할 추가

  • 참고자료
  • 작업 실행 IAM에 AmazonEC2ContainerServiceforEC2Role 권한이 없는 것을 발견했다.
  • 추가했으나 증상은 동일하다.
  • 글을 쓰면서 깨달았는데, 시도 3를 추가했어도 위의 역할 추가를 안했으면 ECR 접근이 안되서 오류는 발생했을 것 같다.
  • 결과적으로 시도2, 시도3 모두 처리를 해야하는 상황인 듯 하다. (시도2: Private Repo 접근, 시도3: 암호화된 파라메터 접근)

시도 3 : 커닝하기

  • 잘 동작하는 기존 시스템의 구성과 비교해보았다.

  • Secret manager, Systems Manager 관련 권한이 더 있었다.

  • 혹시나 싶어서 JSON 째로 복사해서 추가해보았다

  • 해결되었다.

  • 쓰면서 문득 느꼈는데 시도 2에서 ECR 접근 문제는 해결되었고, Task Definition에서 환경변수로 가져오는 파라메터 때문에 발생한 문제같다.

  • (System Manager에 파라메터 등록할때 비밀키로 등록해서 암호화 된 채로 저장되어있다.)

  • 참고자료

profile
더 나은 세상으로 나아가는 서비스를 만들고 싶습니다.

0개의 댓글