연습과제: ECS에서 민감 정보 다루기
Goal
- 데이터베이스 연결 등에 필요한 민감정보를 어떻게 컨테이너에 주입시키는지 알아봅니다.
helloworld-was/route/root.js 파일 수정
AWS Secerets Manager 이용하여 보안 암호 생성
환경 변수 등록
기존 태스크 정의에서 새 개정 생성
환경 변수에 secrets manager arn 주소 복사
값 유형은 valuefrom 으로 설정해줘야 함
새로 만든 개정으로 서비스 업데이트
트러블슈팅
Secerets Manager 접근 권한 없음(ResourceInitializationError: unable to pull secrets or registry auth)
태스크 정의에서 시크릿 매니저에 등록해놓은 보안 암호에 접근하기 위해서는 권한 설정을 해줘야 한다
IAM에 들어가 역할을 생성해준다
SeceretsAccessPolicy 권한을 추가해야 한다
태스크 정의에서 새로 만든 역할로 설정해주면 정상적으로 환경변수를 불러오는 것을 확인할 수 있다
트러블슈팅
mongoDB 접속 주소를 찾지 못하는 오류 발생(MongoServerSelecionErroro: getaddrinfo ENOTFOUND)
접속하고자 하는 몽고디비의 주소를 올바르게 설정해야 한다
로컬에서 실행했을 때는 127.0.0.1 혹은 host.docker.internal 등의 주소로 접근했지만
지금 접근하고자 하는 몽고디비는 nlb 주소로 접근할 수 있으므로
MONGO_HOSTNAME 환경변수의 값을 nlb 주소로 변경한 후 해결됐다
태스크가 성공적으로 실행되는 것을 확인할 수 있다
새로운 개정으로 태스크가 동작하고 있다
환경변수 값 또한 제대로 나오는 것을 알 수 있다