---
type: template
domain: product
role: DevOps·SRE
status: active
last-reviewed: 2026-07-27
---

# 환경변수·비밀 관리

> 환경 변수 key와 secret value의 저장·주입·rotation·폐기를 분리한다. 계정·인증서·라이선스는 인수인계서의 필수 항목이다 — 수행사 개인 계정에 종속된 secret은 이관 실패의 씨앗이다.

## 변수 사전

| Key | 용도 | 필수 환경 | secret 여부 | 형식·기본값 | 소비 component | 누락 시 동작 |
|---|---|---|---|---|---|---|
|  |  |  | 예 / 아니요 |  |  |  |

## Secret lifecycle

| Secret | 저장소 | 생성 Owner | 접근 주체 | 주입 방식 | rotation 주기·절차 | 폐기·이관 계획 |
|---|---|---|---|---|---|---|
|  |  |  |  |  |  |  |

## 노출 방지

| 경로 | 금지·마스킹 규칙 | 검사 방법 | 실패 시 대응 |
|---|---|---|---|
| source·`.env.example` | key만, 실제 값 금지 |  |  |
| CI log·artifact | 값 redaction |  |  |
| container image·Dockerfile | build layer 포함 금지 |  |  |
| application log·error | token·PII 마스킹 |  |  |

## 접근·사고 대응

| 사건 | 즉시 조치 | rotation·폐기 | 영향 조사 | 통지·Owner |
|---|---|---|---|---|
| 저장소 노출 |  |  |  |  |
| 로그 노출 |  |  |  |  |
| 투입 인력 교체·철수 |  |  |  |  |
| 프로젝트 종료·이관 | 수행사 접근 폐기, 발주사 계정 전환 |  |  |  |

## 완료 질문

- [ ] `.env.example`에 모든 필수 key가 빈 값 또는 안전한 예시로 있는가?
- [ ] secret이 workflow, Dockerfile, image layer, test fixture에 평문으로 없는가?
- [ ] 최소 권한과 환경별 분리, 만료·rotation이 정의됐고 발주사 보안 정책과 충돌하지 않는가?
- [ ] 수행사 개인 계정·이메일에 종속된 secret·외부 서비스가 없는가? (있다면 이관 계획 필수)
- [ ] 계정·인증서·라이선스 목록이 인수인계서에 반영되는가? ([[외주 개발 산출물]])

## 승인

- Security 확인자:
- Secret Owner:
- 발주사 보안 담당 확인:
- 예외·만료일:
