helm repo add hashicorp https://helm.releases.hashicorp.com
helm install vault hashicorp/vault --set "server.enabled=false" --set "injector.enabled=false" --set "csi.enabled=true"
vault auth enable kubernetes
vault write auth/kubernetes/config \ token_reviewer_jwt="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \ kubernetes_host="https://$KUBERNETES_PORT_443_TCP_ADDR:443" \ kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
vault enable secret
vault kv put secret/<path> <secret name>=<secret value>
HashiCorp Vaultに証明書をアップロードする前に、証明書を以下の形式にします。1つの.pemファイル(1つのファイルにキー、crt、および CAを含む)にする必要があります。
(証明書の形式のサンプルについては、“mycert.pem”を参照)
Vault kv put secret/<path> <secret name>=@<path to cert.pem>
ポリシー:
vault policy write <policy name> - <<EOF path "secret/database/credentials" { capabilities = ["read", "write", "update","delete"] } EOF
ロール:
vault write auth/kubernetes/role/<role name> \ bound_service_account_names=* \ bound_service_account_namespaces=*\ policies=<policy name> \ ttl=24h
注意: <fep-cluster>-sa サービス アカウントを bound_service_account_names に割り当てることでアクセスを制限でき、bound_service_account_namespaces に値を割り当てることで名前空間を制限することもできます。
注意
HashiCorp Vaultに格納されるシークレットのキー値は1つだけです。