Secret(API 키, password, token, encryption 키)은 안전하게 관리해야 합니다 — 절대 코드에 하드코딩하거나 버전 관리에 커밋하지 말고, 안전하게 저장하고 접근해야 합니다. 부실한 secret 관리는 흔하고 심각한 침해 원천입니다.
핵심 규칙: 절대 secret을 하드코딩하거나 커밋하지 말 것
❌ 절대 secret을 소스 코드에 하드코딩하거나 Git에 커밋하지 마라:
→ 커밋된 secret은 저장소 HISTORY에 남음(나중에 "제거"해도 노출됨)
→ 공개 저장소 / 유출이 공격자에게 노출(봇이 끊임없이 GitHub에서 키를 스캔)
→ 침해의 TOP 원인(유출된 AWS 키, 데이터베이스 password, API token)
⚠️ secret이 커밋/유출되면 → 즉시 ROTATE하라(이미 손상됨)
Secret을 제대로 관리하는 방법
✓ ENVIRONMENT VARIABLES → 런타임에 secret 주입(코드가 아닌); .env를 Git에서 제외
(.gitignore) — 기본 접근
✓ SECRETS MANAGERS → HashiCorp Vault, AWS Secrets Manager, Azure Key Vault 등:
→ 중앙화되고 암호화되며 접근 제어·감사·회전 가능한 secret 저장
→ 프로덕션을 위한 견고한 접근(런타임에 secret 가져옴)
✓ 클라우드/플랫폼 secret 저장소; CI/CD secret 저장소(파이프라인 secret용)
