문서 구성
- 전체 대응 원칙과 공통 분기: 개요
- 설정 파일에 Secret이 있는 경우: 설정 파일
- 런타임 설정 파일을 유지해야 하는 경우: 런타임 설정 파일
- Kubernetes 운영: Kubernetes
- CI/CD 운영: CI/CD
- Vault 및 Secret Manager 운영: Vault·Secret Manager
- 사례
- Go 서비스 Go config.yaml 사례
- Spring Boot Spring application.yml 사례
Secret 관련 취약점과 조치 가이드를 모아둔 섹션입니다.
소스코드에 계정 정보, API Key, Access Token, Secret Key, 인증서 개인키와 같은 민감 정보가 저장되면 저장소 접근자, 로그 수집 시스템, 빌드 아티팩트, 이미지 레이어 등을 통해 쉽게 유출될 수 있습니다.
배포 스크립트, GitHub Actions workflow, GitLab CI, Jenkinsfile에 Secret이 직접 들어가 있으면 저장소 유출뿐 아니라 빌드 로그를 통해서도 노출될 수 있습니다.
조직에서 이미 Vault, AWS Secrets Manager, Google Secret Manager, Azure Key Vault 같은 중앙 Secret 저장소를 사용한다면, 코드에 저장된 Secret은 해당 저장소로 이전하고 애플리케이션은 런타임에 조회하도록 바꾸는 것이 좋습니다.