Vault Enterprise 라이선스 관리

Vault Enterprise 라이선스 관리

이 Helm 차트를 사용해 라이선싱에 관한 몇 가지 추가 단계를 거쳐 Vault Enterprise를 배포할 수 있습니다.

참고: Vault Enterprise 1.8부터 라이선스는 시작 시 HCL 구성 또는 환경 변수로 지정해야 합니다. Vault 클러스터가 더 오래된 Vault 버전으로 생성되어 라이선스가 저장된 경우는 예외입니다. 자세한 내용은 Vault Enterprise License 문서에서 확인할 수 있습니다.

중요 참고: 이 차트는 Helm 2와 호환되지 않습니다. 이 차트에는 Helm 3.6+를 사용하세요.

출처: 문서

본문

Vault Enterprise 1.8+

라이선스 설치

먼저 라이선스 파일의 내용을 사용해 Kubernetes 시크릿을 만듭니다. 예를 들어 다음 명령은 vault-ent-license라는 이름과 license 키로 시크릿을 만듭니다.

secret=$(cat 1931d1f4-bdfd-6881-f3f5-19349374841f.hclic)
kubectl create secret generic vault-ent-license --from-literal="license=${secret}"

참고: .hclic 파일을 찾을 수 없으면 영업 팀이나 기술 계정 관리자(Technical Account Manager)에게 문의하세요.

차트 오버라이드에서 server.image 값을 엔터프라이즈 릴리스 태그 중 하나로 설정합니다. 또한 방금 만든 시크릿의 이름을 server.enterpriseLicense에 설정합니다.

# config.yaml
server:
  image:
    repository: hashicorp/vault-enterprise
    tag: 2.0.4-ent
  enterpriseLicense:
    secretName: vault-ent-license

이제 helm install을 실행합니다.

$ helm install hashicorp hashicorp/vault -f config.yaml

클러스터가 초기화·봉인 해제되면 vault license get 명령으로 라이선스 상태를 확인할 수 있습니다.

kubectl exec -ti vault-0 -- vault license get

라이선스 갱신

Vault에서 자동 로드된 라이선스를 갱신하려면 다음을 수행할 수 있습니다.

  1. 새 라이선스 데이터로 라이선스 시크릿을 갱신합니다.
new_secret=$(base64 < ./new-license.hclic | tr -d '\n')

cat > patch-license.yaml <<EOF
data:
  license: ${new_secret}
EOF

kubectl patch secret vault-ent-license --patch "$(cat patch-license.yaml)"
  1. vault license inspect가 갱신된 라이선스를 보여줄 때까지 기다립니다. inspect 명령은 마운트된 시크릿에서 라이선스 파일을 읽으므로, 갱신된 시크릿이 Vault 파드의 마운트로 전파된 시점을 알려줍니다.
kubectl exec vault-0 -- vault license inspect
  1. Vault의 라이선스 구성을 다시 로드합니다. sys/config/reload/license API 엔드포인트를 사용할 수 있습니다.
kubectl exec vault-0 -- vault write -f sys/config/reload/license

또는 Vault에 HUP 신호를 직접 보낼 수 있습니다.

kubectl exec vault-0 -- pkill -HUP vault
  1. vault license get이 갱신된 라이선스를 보여주는지 확인합니다.
kubectl exec vault-0 -- vault license get

Vault Enterprise 1.8 이전

차트 오버라이드에서 server.image 값을 엔터프라이즈 릴리스 태그 중 하나로 설정합니다. 차트를 설치하고, Running Vault에 설명된 대로 Vault를 초기화·봉인 해제합니다.

Vault가 초기화·봉인 해제된 후 Vault Enterprise 클러스터로 포트 포워드 터널을 설정합니다.

kubectl port-forward vault-0 8200:8200

다음으로, 별도 터미널에서 다음 예시처럼 라이선스 키가 담긴 payload.json 파일을 만듭니다.

{
  "text": "01ABCDEFG..."
}

마지막으로 curl을 사용해 라이선스 키를 Vault API에 적용합니다.

curl \
  --header "X-Vault-Token: VAULT_LOGIN_TOKEN_HERE" \
  --request POST \
  --data @payload.json \
  http://127.0.0.1:8200/v1/sys/license

라이선스 설치가 올바르게 작동했는지 확인하려면 curl로 다음을 실행합니다.

curl \
  --header "X-Vault-Token: VAULT_LOGIN_TOKEN_HERE" \
  http://127.0.0.1:8200/v1/sys/license

더 알아보기 (Learn more)