Phase(시크릿 매니저) 쉽게 이해하기

이민수
∙∙조회 12

시크릿(Secret)이란?

애플리케이션을 운영하려면 다양한 "비밀 정보"가 필요합니다.

종류예시
비밀번호데이터베이스 접속 비밀번호
API 키카카오 로그인, 결제 연동 등에 사용하는 인증 키
토큰GitHub, Slack 등 외부 서비스 접속용 토큰
인증서HTTPS 통신을 위한 SSL 인증서

이런 민감한 정보들을 통틀어 시크릿(Secret)이라고 부릅니다.

시크릿을 왜 따로 관리해야 할까?

흔히 저지르는 실수들

shell
# .env 파일에 비밀번호를 그대로 적어놓기
DATABASE_PASSWORD=mypassword123
KAKAO_API_KEY=abcdef123456
  • 코드 안에 비밀번호를 직접 적어놓는다. (하드코딩)
  • .env 파일을 GitHub에 실수로 올린다.
  • 팀원에게 비밀번호를 슬랙 DM으로 전달한다.
  • 비밀번호를 한 번 설정하고 몇 년간 바꾸지 않는다.

이런 습관은 보안 사고의 가장 흔한 원인입니다.

실제로 Uber는 시크릿 유출로 570만 명의 개인정보가 탈취되는 사고를 겪었습니다.

그래서 Phase란?

Phase는 이런 시크릿을 안전하게 보관하고, 필요한 곳에 자동으로 전달해주는 도구입니다.

비유로 이해하기

 기존 방식Phase 방식
비유집 열쇠를 화분 밑에 숨겨두기스마트 도어락으로 권한 있는 사람만 출입
의미비밀번호를 파일에 적어두고 공유암호화된 금고에 보관하고, 필요할 때만 자동 전달
위험도누구나 찾으면 열 수 있음권한 없으면 절대 접근 불가

왜 Doppler 대신 Phase를 선택했는가?

시크릿 매니저 시장에는 Doppler, Vault, AWS Secrets Manager 등 다양한 도구가 있습니다.
그중 Doppler도 훌륭한 도구이지만, 비용 구조에서 결정적인 차이가 있습니다.

Doppler의 가격 정책

플랜가격제한
Free무료최대 5명, 기본 기능만
Team월 $4 / 사용자감사 로그, 역활 관리 등
Enterprise별도 문의고급 보안 기능

Doppler는 클라우드(SaaS) 전용 서비스입니다.
팀이 커지거나 고급 기능이 필요하면 반드시 유료 플랜을 사용해야 합니다.

Phase의 가격 정책

플랜가격비교
Cloud Free무료최대 5명
Cloud Pro월 $12 / 사용자고급 접근 제어, 감사 로그 등
Self-hosted완전 무료인원 제한 없음, 대부분의 기능 사용 가능

Phase는 오픈소스이기 때문에, 자체 서버에 직접 설치(Self-hosted)하면 인원 제한 없이 대부분의 기능을 무료로 사용할 수 있습니다.

비교 요약

  • Doppler :
    • 5명까지 무료 → 6명부터 과금 시작 → 기능 늘리면 추가 과금
    • 자체 서버 설치 불가 (클라우드만 지원)
  • Phase :
    • 몇 명이든 무료 → 모든 기능 무료 → 내 서버에서 운영
    • 비용 = 서버 운영비만 (월 몇 천원 수준의 소형 서버로도 충분)

정리하면, Phase를 자체 서버에 설치하면 사용자 수나 기능에 관계없이 완전 무료이기 때문에 Doppler에서 Phase로 전환하게 되었습니다.

Phase의 핵심 기능

1. 중앙 집중 관리

모든 시크릿을 한 곳에서 관리합니다.

  • 기존 :
    • 서버 A → .env 파일
    • 서버 B → .env 파일
    • 서버 C → .env 파일
    • → 각각 따로 관리, 동기화 안 됨
  • Phase :
    • Phase 금고 ← 서버 A, B, C 모두 여기서 가져감
    • → 한 곳에서 바꾸면 전체 반영

2. 엔드투엔드 암호화 (E2EE)

시크릿은 내 컴퓨터에서 암호화되어 전송됩니다.
Phase 서버조차 내용을 볼 수 없습니다.

마치 편지를 봉투에 넣고 자물쇠를 채워서 보내는 것과 같습니다.

중간에 우체부(서버)가 열어볼 수 없고, 받는 사람(서비스)만 열 수 있습니다.

Self-hosted 방식에서는 서버 자체가 내 인프라에 있으므로, 데이터가 외부로 나가지 않는다는 추가적인 보안 이점도 있습니다.

3. 환경별 분리

개발•스테이징•운영 환경마다 다른 시크릿을 설정할 수 있습니다.

코드를 바꿀 필요 없이, 환경에 따라 자동으로 다른 값이 주입됩니다.

4. 접근 권한 제어 (RBAC)

누가 어떤 시크릿을 볼 수 있는지 세밀하게 제어할 수 있습니다.

  • 신입 개발자 : 개발 환경 시크릿만 조회 가능
  • 시니어 개발자 : 개발 + 스테이징 시크릿 조회 가능
  • DevOps 엔지니어 : 모든 환경 시크릿 조회 가능

5. 변경 이력 & 감사 로그

누가, 언제, 어떤 시크릿을 바꿨는지 모든 기록이 남습니다.
문제가 생기면 이전 값으로 원클릭 복구도 가능합니다.

6. 자동 동기화

시크릿을 바꾸면 연결된 서비스에 자동으로 반영됩니다.

분류서비스
CI/CDGitHub, GitLab, Jenkins
클라우드AWS, GCP, Azure
플랫폼Docker, Kubernetes, Vercel, Railway
기타Cloudflare Pages, AWS Secrets Manager

기존 방식 vs Phase 비교

항목.env 파일 방식Phase 방식
보안평문 저장 (유출 위험)엔드투엔드 암호화
공유슬랙/이메일로 전달권한 기반 자동 접근
변경 관리누가 바꿨는지 모름감사 로그로 전체 이력 추적
환경 분리파일을 여러 개 만들어야 함환경별 자동 분리
동기화서버마다 수동 업데이트변경 시 자동 반영
복구이전 값을 기억해야 함원클릭 롤백

Phase의 특징 요약

  • 오픈소스 : 코드가 공개되어 있어 누구나 검증 가능
  • Self-hosted 무료 : 자체 서버에 설치하면 인원•기능 제한 없이 완전 무료
  • 엔드투엔드 암호화 : Phase 서버조차 시크릿 내용을 볼 수 없음
  • 개발자 친화적 : CLI, 웹 콘솔, SDK(Go, Python, Node.js) 제공