본문 바로가기

기타

Consul KV와 Vault KV의 설계 목적과 사용 사례

반응형

Consul KV와 Vault KV의 설계 목적과 사용 사례

1. 기본 개념 차이

Vault KV(Key-Value)

  • 보안에 중점 : 암호화, 접근 제어, 시크릿 관리가 주 목적
  • 동적 시크릿 : 임시 자격 증명 생성 가능
  • 감사 로그 : 모든 접근 기록 보관
  • 리스크 관리 도구

Consul KV(Key-Value)

  • 구성 관리에 중점 : 애플리케이션 설정, 서비스 디스커버리, 기능 플래그 관리
  • 분산 시스템 코디네이션 : 서비스 메시, 건강 검사
  • 고가용성 데이터 저장 : 분산 아키텍처 지원
  • 인프라 관리 도구

2. 암호화 방식

Vault KV - 자동 암호화

vault kv put secret/my-app password="s3cr3t"

Consul KV - 평문 저장(옵션으로 암호화 가능)

consul kv put app/config password="s3cr3t"

3. 데이터 모델 비교

항목 Consul KV Vault KV
목적 일반 설정/서비스 정보 저장 암호화된 비밀(Secrets) 저장
보안 암호화 없음(데이터센터 내부 트래픽은 TLS 설정 가능) 자동 암호화 / 접근 정책(ACL) / 감사 로그
사용 예 서비스 설정값, 플래그, 간단한 구성 데이터 패스워드, API 키, 인증정보
접근 제어 Consul ACL 가능하지만 Vault만큼 강력하지 않음 Vault 정책(policy)로 강력 제어
버전관리 버전 없음 KV-v2는 Secret Version 지원
저장 장소 자체 Consul 클러스터 내부 Consul, Raft, DynamoDB 등 Backend
사용 대상 Consul Service Mesh, 구성 시스템 애플리케이션의 Secrets
728x90

4. 사용 예시

Consul KV

Consul의 일반적인 키/값 저장소.

Consul은 기본적으로 "구성 데이터" 저장용이라 암호화를 하지 않음.(Vault의 Encrypt-then-store 구조 없음)

consul kv put config/myapp/debug true
Success! Data written to: config/myapp/debug
consul kv get config/myapp/debug
true

브라우저 접근

http://localhost:8500/ui/dc1/kv/config/myapp/debug/edit

Consul KV

consul kv delete config/myapp/debug
Success! Deleted key: config/myapp/debug

Vault KV

Vault에서 비밀을 저장하는 명령.

Vault는 저장시 자동으로 암호화해서 Consul(또는 Raft)에 저장함.

 

secret/ 엔진이 있는지 확인

vault secrets list
secret/       kv           kv_2572dc0a           n/a

KV v2 엔진을 활성화

vault secrets enable -path=secret kv-v2
Success! Enabled the kv-v2 secrets engine at: secret/
vault kv put secret/myapp password=1234
== Secret Path ==
secret/data/myapp

======= Metadata =======
Key                Value
---                -----
created_time       2025-11-28T04:25:22.10353746Z
custom_metadata    <nil>
deletion_time      n/a
destroyed          false
version            1
vault kv get secret/myapp
== Secret Path ==
secret/data/myapp

======= Metadata =======
Key                Value
---                -----
created_time       2025-11-28T04:25:22.10353746Z
custom_metadata    <nil>
deletion_time      n/a
destroyed          false
version            1

====== Data ======
Key         Value
---         -----
password    1234

브라우저 접근

http://localhost:8200/ui/vault/secrets/secret/kv/myapp

Vault KV

vault kv delete secret/myapp
Success! Data deleted (if it existed) at: secret/data/myapp

 

728x90
반응형

'기타' 카테고리의 다른 글

아이폰에서 AirDrop을 켜는 방법  (0) 2025.10.27
Apple iPhone 17 256GB 블랙 구매  (0) 2025.10.27
쉐보레 올란도 2.0 디젤 배터리 교체  (1) 2025.08.19
Mermaid  (0) 2025.07.30
쉐보레 올란도 2.0 디젤 미션오일 교환  (0) 2025.06.27