카테고리 없음

[Vault] 1. About Vault

noahkim_ 2025. 8. 29. 23:46

1. What is Vault?

  • 중앙 집중화된 secret 관리 및 접근 제어를 제공하는 도구
  • ✅ 모듈형 설계
  •  플러그인 생태계
  • ➡️ 기존 시스템과 손쉽게 통합 가능

 

Plugin

  • Vault의 기능 단위 블록
  • ✅ "데이터가 어떻게 처리되고, 클라이언트가 어떻게 접근하는지" 제어함
  •  내장 플로그인은 기본 포함되어 별도 등록없이 "enable" 해서 사용함
  •  외부 플러그인은 별도 배치 및 등록이 필요함

 

Who can access data in Vault?

  • Vault는 저장되는 데이터에 대한 접근을 엄격히 제한함
  • ✅ 데이터는 저장 시 자동으로 암호화됨
  •  접근은 인증과 인가 과정을 반드시 거쳐야 함
  • ✅ 모든 인증/인가 시도를 감사 로그로 기록함

 

2. How Vault works

Core Workflow

  1. 인증: 토큰, LDAP 프로토콜, 외부 클라우드 프로바이더, AppRole 등을 통해 인증
  2. 검증: 인증 정보를 통해 사용자를 확인
  3. 인가: 클라이언트 토큰에 연결된 정책을 확인하여 접근 권한 체크
  4. 응답
    • 요청 경로에 따라 Secrets Engine으로 전달됨
    • 액세스 토큰 발급: 요청자에 적용되는 보안 정책과 매핑됨. Lease ID 부여
  5. 시크릿 접근
    • 클라이언트는 특정 리소스 경로를 통해 시크릿을 조회하거나 암호화 연산을 요청함
    • Lease: 응답받은 토큰/시크릿에는 만료시간이 있어 자동 회수됨
    • Audit log: 성공/실패 모든 요청이 기록됨

 

Encryption Barrier

  • vault는 데이터를 저장하기 전에 모두 암호화함
  • ✅ 내부에서 암호화된 데이터로 통신함
  • ➡️ 스토리지 해킹 시에도 데이터는 노출되지 않음

 

Shamir Secret Sharing 알고리즘

  • Vault 서버는 시작할 때 "sealed 상태"로 실행 됨
  • ✅ 이걸 Unseal 해야 내부 데이터를 사용할 수 있음
  • 잠금 해제를 위해서는 Unseal Key가 필요함
  •  Unseal Key는 여러 조각으로 쪼개 각 개인에 의해 보관됨
  • ➡️ 일정 수의 키 주인이 각각 자신의 키를 가지고 Unseal 해야 데이터 접근 가능

 

 

출처