피드로 돌아가기
Dev.toSecurity
원문 읽기
Kamal 2 도입을 통한 Production Secret 노출 제로화 설계
Stop Leaking API Keys: Managing Secrets in Kamal 2
AI 요약
Context
기존 .env 파일 기반의 Secret 관리 방식은 Git Repository 유출 시 즉각적인 보안 사고로 이어지는 구조적 결함 보유. 특히 Public Repo 노출 시 4초 내외의 매우 짧은 시간에 자동화 봇에 의한 Key 탈취 및 인프라 오남용 위험 상존.
Technical Solution
- deploy.yml 내 env:secret 섹션을 통한 Secret 변수 명시적 선언 및 설정 파일과 실제 값의 분리
- .kamal/secrets 파일을 통한 로컬 Secret 저장소 구축 및 .gitignore 적용으로 소스 코드 유출 경로 차단
- Password Manager CLI(op CLI) 통합을 통한 Plain Text 저장 방식에서 Dynamic Fetching 구조로 전환
- Deployment 시점에 메모리상에서 Secret을 주입하여 로컬 디스크 내 평문 데이터 존재 가능성을 제거한 설계
- TouchID 등 생체 인증 기반의 런타임 접근 제어를 통한 Secret 전달 프로세스 보안 강화
실천 포인트
1. deploy.yml에 Secret Key 목록을 명시하여 환경 변수 요구 사항을 문서화했는가
2. .kamal/secrets 파일이 .gitignore에 포함되어 버전 관리 시스템에서 제외되었는가
3. 1Password, Bitwarden 등 Password Manager CLI를 활용해 로컬 평문 저장을 제거했는가
4. Deployment 파이프라인 상에서 Secret이 디스크가 아닌 메모리를 통해 서버로 전달되는가