You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅Vault Enterprise环境出现Vault Sidecar Injector权限被拒绝问题

排查修复方案
  • 首先确认K8s集群的实际OIDC Issuer,不要写死默认值。执行命令kubectl get --raw /.well-known/openid-configuration | jq -r .issuer获取真实Issuer,重新配置K8s认证:
vault write auth/kubernetes/config \
        token_reviewer_jwt="$TOKEN_REVIEW_JWT" \
        kubernetes_host="$KUBE_HOST" \
        kubernetes_ca_cert="$KUBE_CA_CERT" \
        issuer="<替换为上面命令输出的真实Issuer>" \
        disable_iss_validation="true" \
        disable_local_ca_jwt="true"
  • 检查HCP Vault集群的IP白名单配置,确认你的K8s集群的出口公网IP已经加入白名单,HCP Vault默认会拦截未加入白名单的IP请求,返回403错误。
  • 补充Sidecar的认证路径注解,确认和你启用K8s认证的路径匹配,完整注解配置如下:
vault.hashicorp.com/namespace: "admin"
vault.hashicorp.com/auth-path: "auth/kubernetes"
vault.hashicorp.com/role: "default-demo-managed" # 替换为你实际创建的K8s角色名
  • 确认你的Workload使用的服务账号配置正确:检查default命名空间下是否存在名为demo-managed的服务账号,且该服务账号已经绑定到你部署的应用实例上。
  • 不要使用内置的hcp-root策略测试,换成你自己创建的admin策略绑定K8s角色:
vault write auth/kubernetes/role/${NAMESPACE}-${RELEASE_NAME} bound_service_account_names=${RELEASE_NAME} bound_service_account_namespaces=${NAMESPACE} policies=admin ttl=1h
  • 手动验证K8s认证是否可用:取任意该服务账号的Token,执行如下命令测试登录,看是否能正常返回Vault Token:
kubectl create token demo-managed --namespace default > sa.token
curl --request POST --data '{"jwt": "'$(cat sa.token)'", "role": "default-demo-managed"}' https://vault-cluster.vault.c1c633fa-91ef-4e86-b025-4f31b3f14730.aws.hashicorp.cloud:8200/v1/admin/auth/kubernetes/login

如果上述请求返回403,说明K8s认证配置本身存在问题,和Sidecar注入无关,优先修复认证配置即可。

内容的提问来源于stack exchange,提问作者Adiii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:45:04