피드로 돌아가기
Dev.toSecurity
원문 읽기
Fernet 암호화와 Firebase 기반의 무상태 .env 공유 CLI 설계
I built a CLI to safely share .env files across teams
AI 요약
Context
Slack, Email, Git commit 등 비보안 채널을 통한 .env 파일 공유로 인한 Secret 유출 리스크 상존. 중앙 집중식 관리 도구의 복잡한 설정 없이 팀 내에서 안전하게 환경 변수를 동기화할 필요성 제기.
Technical Solution
- Fernet Symmetric Encryption 기반의 로컬 암호화로 평문 데이터의 외부 노출 원천 차단
- Firebase Firestore를 단순 Transport Layer로 활용하여 인프라 관리 부담을 제거한 Serverless 아키텍처 구현
- 암호화 키를 툴 외부(Password Manager)에서 관리하는 Out-of-band Key Distribution 방식으로 보안성 강화
- BaseVault 추상화 레이어 도입을 통한 Firebase 외 다양한 백엔드 확장 가능성 확보
- Typer 프레임워크를 활용한 함수 시그니처 기반의 직관적인 CLI 인터페이스 설계
실천 포인트
1. Secret 관리 도구 설계 시 키 저장소와 데이터 저장소를 물리적으로 분리했는지 검토
2. 인프라 오버헤드를 줄이기 위해 Firestore와 같은 Managed Service를 단순 데이터 전달체로 활용하는 방안 고려
3. 향후 저장소 변경에 대비해 데이터 접근 로직을 Interface/Abstract 클래스로 추상화하여 구현