Bank-vault (от banzai-cloud)
- helm upgrade --install --create-namespace -n vault vault helm/vault
Vaults webhooks
helm upgrade --install --create-namespace --namespace vswh --wait vault-secrets-webhook oci://ghcr.io/bank-vaults/helm-charts/vault-secrets-webhook --set configMapMutation=true
kubectl kustomize https://github.com/bank-vaults/vault-operator/deploy/rbac | kubectl apply -f -
- после запуска идем в первый vault-0 и инитим его (и открываем сразу)
vault operator init -key-shares=1 -key-threshold=1
vault operator unseal <key1>
vault login <key1>
- настроим k8s для работы с вольтом
vault auth enable kubernetes
vault write auth/kubernetes/config \
token_reviewer_jwt="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \
kubernetes_host="https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}" \
kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
- создаем политику доступа
vault policy write vault-test - <<EOF
path "kv/data/myenvs" {
capabilities = ["read"]
}
EOF
- создаем роль
vault write auth/kubernetes/role/vault-test \
bound_service_account_names=vault \
bound_service_account_namespaces=vault-test,vswh \
policies=vault-test \
ttl=2h
vault write auth/kubernetes/role/default \
bound_service_account_names=* \
bound_service_account_namespaces=* \
policies=vault-test \
ttl=2h
- импортируем секрет и запускаем деплой
создаем kv
vault secrets enable -path=kv -version=2 kv
создаем секрет myenvs
, содержимое можно взять из примера keys.json
kubectl bank-vaults/vault-test.yaml