Hashicorp Vault Kubernetes 身份验证方法的自定义路径无法使用 CLI

Custom path for Hashicorp Vault Kubernetes Auth Method does not work uisng CLI

当我在默认路径 (-path=kubernetes) 中启用 kubernetes 身份验证方法时,它会起作用。但是,如果它在自定义路径中启用,则 vault init 和 sidecar 容器不会启动。

kubernetes 身份验证方法在 auth/prod

启用
vault auth enable -path=prod/ kubernetes

vault write auth/prod/config \
    kubernetes_host="https://$KUBERNETES_PORT_443_TCP_ADDR:443" \
    token_reviewer_jwt="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \
    kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt 


vault write auth/prod/role/internal-app \
    bound_service_account_names=internal-app \
    bound_service_account_namespaces=default \
    policies=internal-app \
    ttl=24h

这些身份验证配置可能有什么问题?

不确定您是如何部署保管库的,但是您的注入器是否正确

injector:
  enabled: true

vault 将注入 sidecar 和 init 容器。您应该检查失败的 side carinit container 的日志。

如果您使用 K8s 方法进行身份验证,您应该查看下面的注释示例并使用它们

annotations:
        vault.hashicorp.com/agent-image: registry.gitlab.com/XXXXXXXXXXX/vault-image/vault:1.4.1
        vault.hashicorp.com/agent-inject: "true"
        vault.hashicorp.com/agent-inject-secret-secrets: kv/secret-path-location
        vault.hashicorp.com/auth-path: auth/<K8s-cluster-auth-name>
        vault.hashicorp.com/role: app

您可以为不同的 K8s 集群保留多个 auth-path 以使用单个 vault 实例进行身份验证。

如果 vault 正在注入 sidecar,您应该检查它的日志。

https://www.hashicorp.com/blog/injecting-vault-secrets-into-kubernetes-pods-via-a-sidecar