HashiCorp Vault는 Secret 관리, 암호화 서비스, 권한 있는 액세스 제어를 위한 중앙 집중식 플랫폼입니다. Vault는 API 키, 비밀번호, 인증서 및 기타 민감한 데이터에 대한 접근을 보호, 저장 및 엄격하게 제어합니다.
Vault는 다양한 유형의 Secret을 안전하게 저장하고 관리합니다:
Vault는 “Encryption as a Service” 기능을 제공합니다:
Vault는 다양한 인증 방법을 지원합니다:
모든 Vault 작업은 감사 로그에 기록됩니다:
graph TB
subgraph "Vault 서버"
API[HTTP API]
Auth[인증 방법<br/>Kubernetes, AppRole, JWT 등]
Policy[정책 엔진]
SecretEngine[Secret 엔진<br/>KV, Database, AWS 등]
Storage[(스토리지 백엔드<br/>Consul, etcd, File 등)]
end
subgraph "클라이언트"
App[애플리케이션]
CLI[Vault CLI]
UI[Vault UI]
end
App --> API
CLI --> API
UI --> API
API --> Auth
Auth --> Policy
Policy --> SecretEngine
SecretEngine --> Storage
Vault는 시작 시 Sealed 상태입니다:
Unsealing 과정:
Vault는 Zero Trust 원칙을 따릅니다:
문제: Secret이 애플리케이션 코드, 설정 파일, 환경 변수 등에 분산되어 관리가 어려움
해결: Vault를 단일 진실 공급원(Single Source of Truth)으로 사용하여 모든 Secret을 중앙에서 관리
문제: 정적 데이터베이스 자격 증명이 유출되면 전체 시스템이 위험에 노출
해결: Vault가 필요 시 동적으로 자격 증명을 생성하고 사용 후 자동으로 폐기
문제: 애플리케이션마다 암호화 로직을 구현하는 것은 복잡하고 오류 발생 가능성이 높음
해결: Vault의 Transit Secret Engine을 사용하여 암호화를 서비스로 제공
문제: SSL/TLS 인증서의 수동 발급 및 갱신은 시간이 많이 소요되고 오류 발생 가능
해결: Vault PKI Engine으로 인증서 자동 발급 및 갱신
문제: Kubernetes Secret은 base64로 인코딩되어 있을 뿐 암호화되지 않음
해결: Vault Secrets Operator (VSO)를 사용하여 Vault의 Secret을 Kubernetes에 안전하게 동기화
| 기능 | Vault | Kubernetes Secrets | AWS Secrets Manager |
|---|---|---|---|
| 동적 Secret 생성 | ✅ | ❌ | 일부 지원 |
| 암호화 서비스 | ✅ | ❌ | ❌ |
| 다양한 인증 방법 | ✅ | 제한적 | AWS IAM만 |
| 멀티 클라우드 지원 | ✅ | ❌ | ❌ |
| 감사 로그 | ✅ | 제한적 | ✅ |
| Secret 버전 관리 | ✅ | ✅ | ✅ |
| PKI/인증서 관리 | ✅ | ❌ | ❌ |
Vault의 기본 개념을 이해했다면, 다음 문서로 진행하세요: