Vault Secrets Store CSI provider 설치하기
Vault Secrets Store CSI provider 설치하기
Kubernetes에서 Vault Secrets Store CSI provider를 설치·구성하는 방법을 설명합니다.
출처: 문서
본문
전제 조건
- 마스터·워커 노드 모두 Kubernetes 1.16+(Linux 전용)
- 설치된 Secrets Store CSI driver
- TokenRequest 엔드포인트 사용 가능. 이를 위해 kube-apiserver에
--service-account-signing-key-file및--service-account-issuer플래그를 설정해야 합니다. 대부분의 관리형 서비스에서는 1.20+부터 기본으로 설정됩니다.
Helm을 사용한 설치
Vault Helm 차트는 Kubernetes에서 Vault Secrets Store CSI provider를 설치·구성하는 데 권장되는 방법입니다.
Vault와 Vault Secrets Store CSI provider의 새 인스턴스를 설치하려면 먼저 HashiCorp Helm 레포지토리를 추가하고 차트에 접근할 수 있는지 확인하세요.
참고: Vault Secrets Store CSI provider Helm 설치는 Vault Helm 0.10.0+가 필요합니다.
$ 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
그런 다음 csi.enabled 값을 true로 설정해 차트를 설치하고 CSI 기능을 활성화합니다.
참고: 이렇게 하면 Vault 서버와 Agent Injector도 함께 설치됩니다.
$ helm install vault hashicorp/vault --set="csi.enabled=true"
업그레이드는 기존 설치에서 helm upgrade로 수행할 수 있습니다. 변경 사항을 검증하려면 설치나 업그레이드 전에 항상 helm --dry-run을 실행하세요.
helm inspect values hashicorp/vault를 실행하거나 Vault Helm Configuration Docs를 읽어 사용 가능한 모든 값 설정을 볼 수 있습니다. Helm 차트에서 흔히 사용되는 값에는 Vault Secrets Store CSI provider가 실행되는 네임스페이스 제한, TLS 옵션 등이 포함됩니다.
OpenShift에 설치하기
OpenShift 클러스터에서 Red Hat 인증된 Vault Secrets Store CSI provider를 실행합니다.
전제 조건
- OpenShift 4.14+
- Red Hat의 Secrets Store CSI driver operator가 설치되어 있어야 함
secrets-store.csi.k8s.io에 대한 ClusterCSIDriver 인스턴스가 생성되어 있어야 함
Helm을 사용해 설치
Vault Secrets Store CSI provider가 hostPath 마운트 접근 권한을 얻도록, OpenShift의 privileged security context constraint에 Vault Secrets Store CSI provider 서비스 계정을 추가해야 합니다.
$ oc adm policy add-scc-to-user privileged \
-z vault-csi-provider \
-n ${KUBERNETES_VAULT_NAMESPACE}
OpenShift Helm 차트 레포지토리에서 CSI provider를 설치합니다.
$ helm repo add openshift-helm-charts https://charts.openshift.io/
$ helm repo update
$ helm install vault openshift-helm-charts/vault \
--namespace ${KUBERNETES_VAULT_NAMESPACE} \
--set="csi.enabled=true"