OpenShift에 Vault 설치
OpenShift에 Vault 설치 (Install Vault on OpenShift)
OpenShift에 Vault와 Vault Agent Injector를 설치·실행·사용하는 방법을 다룹니다.
출처: 문서
본문
중요한 참고: 이 차트는 Helm 2와 호환되지 않아요. 이 차트에는 Helm 3.6 이상을 사용해 주세요.
다음 문서는 OpenShift에 Vault와 Vault Agent Injector를 설치·실행·사용하는 방법을 설명해요.
권장 설정 방법: OpenShift에서 Vault에 안전하게 접근하는 권장 방법은 Vault Secrets Operator를 통하는 것입니다. Vault Secrets Operator를 통해 개발자는 시크릿을 네이티브 쿠버네티스 시크릿으로 접근하고, Vault가 여전히 시크릿을 관리합니다. Vault Secrets Operator는 이제 Red Hat OpenShift에서 인증되었으며 내장 operator hub에서 사용할 수 있어요. OpenShift에 Vault Secrets Operator를 설치·구성하는 방법은 Run the Vault Secrets Operator on OpenShift 문서를 참고하세요.
요구사항 (Requirements)
OpenShift에 Vault와 Vault Agent Injector를 설치하려면 다음이 필요해요.
- auth-delegator 역할을 Vault의 서비스 어카운트에 바인딩할 클러스터 관리자 권한
- Helm v3.6+
- OpenShift 4.3+
- Vault Helm v0.6.0+
- Vault K8s v0.4.0+
참고: OpenShift에서 Consul 지원은 가능해요. 하지만 고가용성(HA) 배포에는 HashiCorp가 Raft 통합 스토리지를 권장합니다.
추가 자료 (Additional resources)
Vault Helm과 Vault K8s Agent Injector의 문서·구성·예제는 OpenShift 설치에도 동일하게 적용돼요. 더 많은 예제를 보려면 기존 문서를 참조하세요.
Helm 차트
Vault Helm 차트는 OpenShift에 Vault를 설치·구성하는 권장 방법이에요. Vault 자체를 실행하는 것 외에도, Helm 차트는 Vault Agent Injection Mutating Webhook을 설치·구성하는 기본 방법입니다.
Helm 차트가 복잡한 리소스를 자동으로 설정하고 요구사항에 맞는 구성을 노출하지만, Vault를 자동으로 운영하지는 않아요. Vault 클러스터를 모니터링·백업·업그레이드하는 방법은 여전히 직접 배워야 합니다.
보안 경고: 기본적으로 차트는 standalone(단일 서버) 모드로 실행돼요. standalone 모드는 단일 Vault 서버와 파일 스토리지 백엔드를 사용합니다. 이는 보안성·복원력이 떨어지는 설치로, 프로덕션 설정에는 적합하지 않아요. 적절히 보안이 설정된 쿠버네티스 클러스터 문서와 사용 가능한 구성 옵션, 프로덕션 배포 체크리스트를 참고하세요.
방법 (How-to)
Vault 설치
Helm 차트를 사용하려면 HashiCorp Helm 레포지토리를 추가하고 차트에 접근할 수 있는지 확인해요.
$ helm repo add hashicorp https://helm.releases.hashicorp.com
"hashicorp" has been added to your repositories
$ helm search repo hashicorp/vault
NAME CHART VERSION APP VERSION DESCRIPTION
hashicorp/vault 0.34.1 2.0.4 Official HashiCorp Vault Chart
helm install로 Vault Helm 차트의 최신 릴리스를 설치해요.
$ helm install vault hashicorp/vault
또는 차트의 특정 버전을 설치할 수도 있어요.
# 사용 가능한 릴리스 나열
$ helm search repo hashicorp/vault -l
NAME CHART VERSION APP VERSION DESCRIPTION
hashicorp/vault 0.34.1 2.0.4 Official HashiCorp Vault Chart
hashicorp/vault 0.34.0 2.0.3 Official HashiCorp Vault Chart
hashicorp/vault 0.33.0 2.0.2 Official HashiCorp Vault Chart
hashicorp/vault 0.32.0 1.21.2 Official HashiCorp Vault Chart
hashicorp/vault 0.31.0 1.20.4 Official HashiCorp Vault Chart
hashicorp/vault 0.30.1 1.20.1 Official HashiCorp Vault Chart
hashicorp/vault 0.30.0 1.19.0 Official HashiCorp Vault Chart
hashicorp/vault 0.29.1 1.18.1 Official HashiCorp Vault Chart
hashicorp/vault 0.29.0 1.18.1 Official HashiCorp Vault Chart
hashicorp/vault 0.28.1 1.17.2 Official HashiCorp Vault Chart
...
# 버전 0.34.1 설치
$ helm install vault hashicorp/vault --version 0.34.1
helm install 명령은 기본 구성 값을 인라인으로 또는 파일에 정의해 오버라이드하는 파라미터를 받아들여요.
팁: 모든 OpenShift 배포에서
global.openshift를 true로 설정하고,default가 아닌 네임스페이스에 차트를 배포하세요.
global.openshift 구성 값을 오버라이드하기:
$ helm install vault hashicorp/vault \
--create-namespace \
--namespace vault \
--set "global.openshift=true"
파일의 모든 구성을 오버라이드하기:
$ cat override-values.yml
global:
openshift: true
server:
ha:
enabled: true
replicas: 5
##
$ helm install vault hashicorp/vault \
--create-namespace \
--namespace vault \
--values override-values.yml
Dev 모드
Helm 차트는 Vault 서버를 개발 모드로 실행할 수 있어요. 이는 메모리 스토리지 백엔드를 사용하는 단일 Vault 서버를 설치합니다.
팁: Dev 모드는 학습·데모 환경에 이상적이지만, 프로덕션 환경에는 권장하지 않아요.
개발 모드로 최신 Vault Helm 차트 설치하기:
$ helm install vault hashicorp/vault \
--create-namespace \
--namespace vault \
--set "global.openshift=true" \
--set "server.dev.enabled=true"
고가용성 Raft 모드
다음은 Raft 통합 스토리지 백엔드를 사용하는 Vault 클러스터를 만듭니다.
HA Raft 모드로 최신 Vault Helm 차트 설치하기:
$ helm install vault hashicorp/vault \
--create-namespace \
--namespace vault \
--set='global.openshift=true' \
--set='server.ha.enabled=true' \
--set='server.ha.raft.enabled=true'
vault-0 파드 초기화 및 봉인 해제:
$ oc exec -ti vault-0 -- vault operator init
$ oc exec -ti vault-0 -- vault operator unseal
마지막으로 나머지 파드를 Raft 클러스터에 조인하고 봉인 해제해요. 파드들이 직접 통신해야 하므로 Helm 차트가 제공하는 내부 서비스를 사용하도록 파드를 구성할 거예요.
$ oc exec -ti vault-1 -- vault operator raft join http://vault-0.vault-internal:8200
$ oc exec -ti vault-1 -- vault operator unseal
$ oc exec -ti vault-2 -- vault operator raft join http://vault-0.vault-internal:8200
$ oc exec -ti vault-2 -- vault operator unseal
Raft 클러스터가 초기화됐는지 확인하려면 다음을 실행해요.
먼저 vault-0 파드에서 루트 토큰으로 로그인합니다.
$ oc exec -ti vault-0 -- vault login
다음으로 모든 raft 피어를 나열합니다.
$ oc exec -ti vault-0 -- vault operator raft list-peers
Node Address State Voter
---- ------- ----- -----
a1799962-8711-7f28-23f0-cea05c8a527d vault-0.vault-internal:8201 leader true
e6876c97-aaaa-a92e-b99a-0aafab105745 vault-1.vault-internal:8201 follower true
4b5d7383-ff31-44df-e008-6a606828823b vault-2.vault-internal:8201 follower true
통합 스토리지(Raft)를 사용하는 Vault를 이제 사용할 수 있어요!
외부 모드 (External mode)
Helm 차트를 external 모드로 실행하면 Vault 서버를 설치하지 않고, 네트워크로 접근 가능한 Vault 서버가 존재한다고 가정합니다.
외부 모드로 최신 Vault Helm 차트 설치하기:
$ helm install vault hashicorp/vault \
--create-namespace \
--namespace vault \
--set "global.openshift=true" \
--set "injector.externalVaultAddr=http://external-vault:8200"
튜토리얼
OpenShift에서 Vault를 시작하려면 Install Vault to Red Hat OpenShift로 시작하세요.
쿠버네티스 클러스터 밖에서 Vault를 실행하는 방법을 배우려면 Integrate a Kubernetes Cluster with an External Vault 튜토리얼을 참고하세요.