Runtime Secrets
ConfigModule은 읽는 창구이고 Secret Manager는 보관 위치다
NestJS는 ConfigService로 값을 읽지만, 실제 DB 비밀번호와 토큰은 배포 환경이나 전용 Secret Store에서 공급한다.
1
키 이름만 커밋
.env.example에는 필요한 변수명과 형식만 남긴다.
2
전용 저장
GitHub Secrets, Vault, Cloud Secret Manager에 값을 둔다.
3
권한 부여
실행 주체에 필요한 secret 읽기 권한만 준다.
4
런타임 주입
배포 시점에 환경 변수 또는 SDK로 값을 가져온다.
5
마스킹·교체
로그에는 이름만 남기고 유출 시 즉시 rotate한다.
허용 경로
ConfigService → Runtime Env → Secret Store
애플리케이션은 키 이름으로만 값을 요청하고 실제 값은 실행 환경에서 받는다.
금지 경로
Commit · Image layer · Log · 문서 공유
레포지토리, 이미지, 로그, 공유 문서에 실제 secret이 남으면 즉시 회수한다.