반응형



HashiCorp Vault 는 한 줄로 말하면:
"비밀번호·API 키·JWT Secret 같은 민감정보를
중앙에서 안전하게 관리하는 시스템"
이다.
실무에서는 거의:
Secret 전용 금고
처럼 생각하면 된다.
왜 Vault가 필요하냐?
예전에는:
application.yml
.env
환경변수
같은 곳에 Secret 저장했다.
문제
운영 규모 커지면:
- Secret 수백 개
- 서버 수십~수백 대
- Rotation 필요
- 접근권한 관리 필요
해진다.
예시 문제
DB 비밀번호 바꾸려는데
서버 50대 수정해야 함
또는
누가 Secret 봤는지 추적 불가
그래서 Vault 등장
핵심 아이디어:
Secret을 중앙 서버에서 관리
기본 구조
Application
↓
Vault
↓
DB/API/Cert
즉 앱은
Vault에서 Secret 가져와 사용
한다.
Vault 핵심 기능
1. Secret 저장
예:
DB Password
JWT Secret
OAuth Secret
암호화 저장.
2. Access Control
누가 어떤 Secret 볼 수 있는지 제어.
3. Audit Log
누가 언제 Secret 조회했는가
기록.
4. Rotation
Secret 자동 교체.
5. Dynamic Secret
엄청 중요한 기능.
Dynamic Secret이 뭐냐?
Vault가:
실시간으로 임시 계정 생성
한다.
예시
앱이 Vault 요청:
DB 접속 계정 주세요
Vault가 생성
user_abc123
expire=30m
30분 후 자동 삭제.
왜 엄청 좋냐?
유출돼도:
짧은 시간만 사용 가능
하다.
Static Secret vs Dynamic Secret
| 방식 | 특징 |
| Static | 고정 비밀번호 |
| Dynamic | 임시 자동 생성 |
Vault가 유명한 이유
단순 저장소가 아니라:
Secret Lifecycle 전체 관리
하기 때문.
실제 동작 흐름
STEP 1 — App 인증
앱이 Vault에:
"나 누구다"
인증.
인증 방법
| 방식 | 예 |
| Token | 개발 |
| Kubernetes Auth | K8s |
| AWS IAM | Cloud |
| AppRole | 서버앱 |
STEP 2 — Vault 권한 확인
정책(policy) 검사.
예:
order-service는
db/order만 접근 가능
STEP 3 — Secret 반환
앱이 받아 사용.
Vault 내부 구조
Storage Backend
Vault 데이터 저장소.
예:
- Consul
- Raft
- DynamoDB
Seal/Unseal
엄청 중요.
Vault는 시작 시:
암호화 상태(sealed)
다.
Unseal 필요
관리자 키 일부 모아서 해제.
왜 이렇게 하냐?
운영자가:
서버 파일만 탈취해도
Secret 못 읽게
하기 위해.
Shamir Secret Sharing 사용
키를 조각내 관리.
예:
5개 중 3개 모이면 해제
Kubernetes에서 엄청 많이 씀
예:
- DB Password
- TLS Key
- API Key
등 중앙 관리.
Vault Agent도 많이 사용
앱 대신 Secret 자동 갱신.
Spring Boot 연동
실무에서 많이 사용.
예:
- Spring Cloud Vault
설정 예시
spring:
cloud:
vault:
uri: http://vault:8200
앱 코드에서는
@Value("${db.password}")
처럼 사용 가능.
Vault vs 환경변수
| 항목 | 환경변수 | Vault |
| 중앙관리 | X | O |
| Rotation | 어려움 | 쉬움 |
| Audit | 거의 없음 | O |
| Dynamic Secret | X | O |
| 권한관리 | 제한적 | 강력 |
단점도 있음
운영 복잡
Vault 자체가:
고가용성
백업
Unseal
정책
관리 필요.
장애 시 영향 큼
Vault 죽으면:
Secret 조회 실패
가능.
그래서 보통 HA 구성
- Active/Standby
- Raft Cluster
사용.
실무 추천
| 규모 | 추천 |
| 소규모 | env/.env |
| 중간 | Cloud Secret Manager |
| 대규모 | Vault |
현재 트렌드
클라우드 네이티브 환경에서는:
- AWS Secrets Manager
- GCP Secret Manager
도 엄청 많이 사용.
핵심 한 줄
Vault는:
비밀번호·API 키·인증서 같은 Secret을
중앙에서 암호화 저장하고,
접근제어·감사·자동교체·동적 발급까지 관리하는
엔터프라이즈급 Secret 관리 시스템
이다.
반응형
'system_fundamentals > security_cryptography' 카테고리의 다른 글
| Zero Trust (0) | 2026.05.20 |
|---|---|
| 환경변수 보안 (0) | 2026.05.20 |
| Secret 관리 (0) | 2026.05.20 |
| Clickjacking (0) | 2026.05.19 |
| SSRF (0) | 2026.05.19 |
댓글