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에서 자동 로드된 라이선스를 갱신하려면 다음을 수행할 수 있습니다.
- 새 라이선스 데이터로 라이선스 시크릿을 갱신합니다.
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)"
vault license inspect가 갱신된 라이선스를 보여줄 때까지 기다립니다. inspect 명령은 마운트된 시크릿에서 라이선스 파일을 읽으므로, 갱신된 시크릿이 Vault 파드의 마운트로 전파된 시점을 알려줍니다.
kubectl exec vault-0 -- vault license inspect
- Vault의 라이선스 구성을 다시 로드합니다.
sys/config/reload/licenseAPI 엔드포인트를 사용할 수 있습니다.
kubectl exec vault-0 -- vault write -f sys/config/reload/license
또는 Vault에 HUP 신호를 직접 보낼 수 있습니다.
kubectl exec vault-0 -- pkill -HUP vault
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