Phase(시크릿 매니저) 쉽게 이해하기
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
애플리케이션을 운영하려면 다양한 "비밀 정보"가 필요합니다.
| 종류 | 예시 |
|---|---|
| 비밀번호 | 데이터베이스 접속 비밀번호 |
| API 키 | 카카오 로그인, 결제 연동 등에 사용하는 인증 키 |
| 토큰 | GitHub, Slack 등 외부 서비스 접속용 토큰 |
| 인증서 | HTTPS 통신을 위한 SSL 인증서 |
이런 민감한 정보들을 통틀어 시크릿(Secret)이라고 부릅니다.
# .env 파일에 비밀번호를 그대로 적어놓기
DATABASE_PASSWORD=mypassword123
KAKAO_API_KEY=abcdef123456
.env 파일을 GitHub에 실수로 올린다.이런 습관은 보안 사고의 가장 흔한 원인입니다.
실제로 Uber는 시크릿 유출로 570만 명의 개인정보가 탈취되는 사고를 겪었습니다.
Phase는 이런 시크릿을 안전하게 보관하고, 필요한 곳에 자동으로 전달해주는 도구입니다.
| 기존 방식 | Phase 방식 | |
|---|---|---|
| 비유 | 집 열쇠를 화분 밑에 숨겨두기 | 스마트 도어락으로 권한 있는 사람만 출입 |
| 의미 | 비밀번호를 파일에 적어두고 공유 | 암호화된 금고에 보관하고, 필요할 때만 자동 전달 |
| 위험도 | 누구나 찾으면 열 수 있음 | 권한 없으면 절대 접근 불가 |
시크릿 매니저 시장에는 Doppler, Vault, AWS Secrets Manager 등 다양한 도구가 있습니다.
그중 Doppler도 훌륭한 도구이지만, 비용 구조에서 결정적인 차이가 있습니다.
| 플랜 | 가격 | 제한 |
|---|---|---|
| Free | 무료 | 최대 5명, 기본 기능만 |
| Team | 월 $4 / 사용자 | 감사 로그, 역활 관리 등 |
| Enterprise | 별도 문의 | 고급 보안 기능 |
Doppler는 클라우드(SaaS) 전용 서비스입니다.
팀이 커지거나 고급 기능이 필요하면 반드시 유료 플랜을 사용해야 합니다.
| 플랜 | 가격 | 비교 |
|---|---|---|
| Cloud Free | 무료 | 최대 5명 |
| Cloud Pro | 월 $12 / 사용자 | 고급 접근 제어, 감사 로그 등 |
| Self-hosted | 완전 무료 | 인원 제한 없음, 대부분의 기능 사용 가능 |
Phase는 오픈소스이기 때문에, 자체 서버에 직접 설치(Self-hosted)하면 인원 제한 없이 대부분의 기능을 무료로 사용할 수 있습니다.
정리하면, Phase를 자체 서버에 설치하면 사용자 수나 기능에 관계없이 완전 무료이기 때문에 Doppler에서 Phase로 전환하게 되었습니다.
모든 시크릿을 한 곳에서 관리합니다.
시크릿은 내 컴퓨터에서 암호화되어 전송됩니다.
Phase 서버조차 내용을 볼 수 없습니다.
마치 편지를 봉투에 넣고 자물쇠를 채워서 보내는 것과 같습니다.
중간에 우체부(서버)가 열어볼 수 없고, 받는 사람(서비스)만 열 수 있습니다.
Self-hosted 방식에서는 서버 자체가 내 인프라에 있으므로, 데이터가 외부로 나가지 않는다는 추가적인 보안 이점도 있습니다.
개발•스테이징•운영 환경마다 다른 시크릿을 설정할 수 있습니다.
코드를 바꿀 필요 없이, 환경에 따라 자동으로 다른 값이 주입됩니다.
누가 어떤 시크릿을 볼 수 있는지 세밀하게 제어할 수 있습니다.
누가, 언제, 어떤 시크릿을 바꿨는지 모든 기록이 남습니다.
문제가 생기면 이전 값으로 원클릭 복구도 가능합니다.
시크릿을 바꾸면 연결된 서비스에 자동으로 반영됩니다.
| 분류 | 서비스 |
|---|---|
| CI/CD | GitHub, GitLab, Jenkins |
| 클라우드 | AWS, GCP, Azure |
| 플랫폼 | Docker, Kubernetes, Vercel, Railway |
| 기타 | Cloudflare Pages, AWS Secrets Manager |
| 항목 | .env 파일 방식 | Phase 방식 |
|---|---|---|
| 보안 | 평문 저장 (유출 위험) | 엔드투엔드 암호화 |
| 공유 | 슬랙/이메일로 전달 | 권한 기반 자동 접근 |
| 변경 관리 | 누가 바꿨는지 모름 | 감사 로그로 전체 이력 추적 |
| 환경 분리 | 파일을 여러 개 만들어야 함 | 환경별 자동 분리 |
| 동기화 | 서버마다 수동 업데이트 | 변경 시 자동 반영 |
| 복구 | 이전 값을 기억해야 함 | 원클릭 롤백 |