피드로 돌아가기
Dev.toSecurity
원문 읽기
GitHub Permissions 기반의 Zero-ACL Secret Management 구현
Stop Slacking your secrets. Use GitHub instead.
AI 요약
Context
Slack DM이나 Notion을 통한 .env 공유 방식의 Plaintext 노출 위험과 ACL 관리 중복 문제를 해결하고자 함. 기존 Doppler나 Infisical 같은 솔루션은 별도의 계정 체계와 높은 비용, 복잡한 설정이 요구되는 오버헤드가 존재함.
Technical Solution
- GitHub Repo Permissions를 단일 ACL로 활용하여 추가적인 사용자 관리 체계 제거
- Client-side AES-256-GCM 암호화를 통해 서버에 Ciphertext만 저장하는 Zero-Knowledge 아키텍처 설계
- HKDF-SHA256 기반의 Key Derivation 및 12-byte Random IV 적용으로 데이터 무결성 및 보안성 강화
- GitHub Device Flow 인증을 통한 심리스한 권한 검증 및 API 기반의 Authorization Gate 구축
- Git Branch와 Environment를 매핑하여 컨텍스트에 따른 자동화된 Secret Pull/Push 로직 구현
- BOLTENV_TOKEN과 BOLTENV_KEY 조합을 통한 SDK 없는 CI/CD 파이프라인 통합
실천 포인트
- Secret 관리 도구 도입 시 별도의 ACL 구축보다 기존 VCS 권한 체계를 활용하는 방안 검토 - 서버에 Plaintext가 저장되지 않도록 Client-side Encryption 및 Key Fingerprint 검증 로직 적용 - CI/CD 환경에서 Service Account 최소화를 위해 GitHub Actions의 GITHUB_TOKEN 활용성 확인