Kubernetes에서 Vault 실행하기

Kubernetes에서 Vault 실행하기

Vault는 공식 HashiCorp Vault Helm 차트를 사용해 Kubernetes에 배포할 수 있습니다. Helm 차트는 사용자가 다양한 구성으로 Vault를 배포할 수 있게 해줍니다.

  • Dev: Vault를 테스트하기 위한 단일 인메모리 Vault 서버
  • Standalone(기본값): file 스토리지 백엔드를 사용해 볼륨에 영속하는 단일 Vault 서버
  • HA(고가용성): Consul(기본값) 같은 고가용성 스토리지 백엔드를 사용하는 Vault 서버 클러스터
  • External: 외부 Vault 서버에 의존하는 Vault Agent Injector 서버

출처: 문서

본문

사용 사례 (Use cases)

  • Vault 서비스 실행 (Running a Vault Service): Vault 서버 클러스터는 Kubernetes에서 직접 실행할 수 있습니다. Kubernetes 내부의 애플리케이션뿐 아니라 네트워크를 통해 서버와 통신할 수 있다면 Kubernetes 외부의 애플리케이션도 사용할 수 있습니다.
  • 시크릿 접근·저장 (Accessing and Storing Secrets): Kubernetes에서 실행되는 Vault 서비스를 사용하는 애플리케이션은 다양한 시크릿 엔진과 인증 방법을 사용해 Vault에서 시크릿에 접근·저장할 수 있습니다.
  • 고가용성 Vault 서비스 실행 (Running a Highly Available Vault Service): 파드 친화성(pod affinity), 고가용성 백엔드 스토리지(예: Consul), 자동 봉인 해제(auto-unseal)를 사용해 Vault를 Kubernetes에서 고가용성 서비스로 만들 수 있습니다.
  • 암호화 서비스 (Encryption as a Service): Kubernetes에서 실행되는 Vault 서비스를 사용하는 애플리케이션은 Transit 시크릿 엔진을 "암호화 서비스"로 활용할 수 있습니다. 이를 통해 애플리케이션은 저장 전 데이터를 Vault에 암호화 요구 사항을 내려 보낼 수 있습니다.
  • Vault용 감사 로그 (Audit Logs for Vault): 운영자는 Vault 클러스터에 영구 볼륨을 연결해 감사 로그를 저장할 수 있습니다.
  • 그 외 다양한 기능! Vault는 Kubernetes에서 직접 실행될 수 있으므로, Vault 자체가 제공하는 네이티브 통합 외에도 Kubernetes용으로 빌드된 다른 어떤 도구든 Vault를 활용할 수 있습니다.

지원되는 Kubernetes 버전

IBM은 다음 Kubernetes 마이너 릴리스에 대해 Vault를 테스트·검증합니다. IBM은 다른 버전의 Kubernetes에서는 기능이 작동할 수 있지만 Vault를 지원하지 않습니다.

  • 1.36
  • 1.35
  • 1.34
  • 1.33
  • 1.32

Vault와 Kubernetes 시작하기

다양한 환경에서 Vault를 Kubernetes로 시도하는 방법이 여러 가지 있습니다.

설치 가이드

  • Vault Installation to Minikube via Helm with Integrated Storage는 Minikube와 공식 Helm 차트를 사용해 로컬에 Vault를 설치하는 방법을 다룹니다.
  • Vault Installation to Red Hat OpenShift via Helm은 Red Hat의 OpenShift 플랫폼에서 Helm을 사용해 Vault를 설치하는 방법을 다룹니다.
  • Integrate a Kubernetes Cluster with an External Vault는 Kubernetes 서비스와 엔드포인트를 통해 Vault를 접근 가능하게 하는 예시를 제공합니다.
  • Vault on Kubernetes Deployment Guide는 단일 HashiCorp Vault 클러스터를 설치·구성하는 데 필요한 단계를 다룹니다.

Kubernetes에서 시크릿 소비하기

Vault는 기존 애플리케이션 코드를 수정하지 않고 Kubernetes 워크로드에서 시크릿을 원활하게 소비하기 위한 다음 통합을 제공합니다.

  • Vault Secrets Operator — Vault Secrets Operator CSI 드라이버로 보호되는 시크릿
  • Vault Secrets Store CSI provider
  • Vault Agent Injector

자세한 내용은 comparisons 페이지를 참고하세요.

문서

  • Vault on Kubernetes Security Considerations는 프로덕션 Kubernetes 환경에서 Vault를 안전하게 실행하기 위한 권장 사항을 제공합니다.

더 알아보기 (Learn more)