본문 바로가기

OSS

[OSS] Hashicorp Vault 란?

반응형

개요

Vault는 다양한 비밀 정보들을 중앙에서 통합하여 관리하는 솔루션입니다.

 

주요 기능

  1. 다양한 비밀 정보를 통합 관리
    • 서비스의 액세스를 위해 필요한 인증 정보 및 클라이언트간의 전송 중인 모든 키를 중앙에 통합하여 관리합니다.
  2. 접근 정책 적용으로 비밀 정보 보안 강화
    • 다양한 클라우드 운영 환경의 시스템, 애플리케이션 및 민감한 데이터를 보호하기 위해 토큰, 암호, 인증서, 암호화키를 모두 암호화하고, 접근 권한에 대한 정책 설정으로 보안 강화합니다.
  3. 키 라이프 사이클의 자동화 - Dynamic secrets
    • 접속을 위해 필요한 암호 정보는 사용 시간 정책에 따라 신규 생성 및 폐기의 라이프사이클 자동 수행합니다.

 

구성, 관리, 확인 방법

Hasicorp Vault는 구성, 관리, 확인 하는 방식은 3가지 방식을 제공합니다.

  1. GUI
  2. CLI
  3. API(Restful)

 

Vault 동작

Vault 쿠버네티스 인증(Vault’s Kubernetes Authentication)

 

 

  1. 쿠버네티스에서 자체적으로 사용하는 serviceaccount token, serviceaccount 인증서 설정을 통해서 Kubernetes Auth를 구성하게 됩니다.
  2. Webapp에서 vault에 username과 password를 요청할때 Kubernetes 롤을 요청하게 되는데 해당 롤은 인증을 통해서 쿠버네티스 인증을 받게 됩니다.
  3. Vault의 secret의 기능을 통해서 username과 password를 디렉토리 형태로 되어있는 config에 key/value 형태로 설정합니다.
  4. key/vaule가 가지고 있는 data를 policy를 통해서 읽게되면 read권한만 가지고 변경할 수 없이 리드만 할 수 있게하여 username과 password를 안전하게 보관할 수 있습니다.
  5. Webapp에서 데이터(username, password)를 가져갈 수 있게 role를 설정하게 됩니다. Webapp에서 role 이름을 호출하게 되면 service account name과 service account namespace를 가지고 인증을 하게 됩니다.

 

전체 흐름

  • Webapp이 요청을 하게 되면 role 이름을 호출하게 되고, service account name과 service account namespace를 확인하고 선언된 policy에 맞춰서 policy를 인증해서 policy에 선언되어 있는 path와 권한 정책(capabilities)을 가지고 username과 password를 정보를 얻게됩니다.
반응형