Kubernetes 无法读取保险库机密-使用保险库侧车注入器

Kubernetes 无法读取保险库机密-使用保险库侧车注入器,kubernetes,google-kubernetes-engine,hashicorp-vault,Kubernetes,Google Kubernetes Engine,Hashicorp Vault,无法使用以下设置读取路径/secrets/apims/ABC_CONFIG处存储在Vault中的机密 在Vault中创建的策略: vault policy write policy_name - <<EOF path "secret/apims/*" { capabilities = ["read"] } 在外部拱顶上使用Kubernetes拱顶侧车注入器。Kubernetes上的部署看起来像 apiVersi

无法使用以下设置读取路径/secrets/apims/ABC_CONFIG处存储在Vault中的机密

在Vault中创建的策略:

  vault policy write policy_name - <<EOF
    path "secret/apims/*" {
      capabilities = ["read"]
    }
在外部拱顶上使用Kubernetes拱顶侧车注入器。Kubernetes上的部署看起来像

apiVersion:“应用程序/v1” 种类:“部署” 元数据: 名称:“nginx-5” 名称空间:“默认” 标签: 应用程序:“nginx-5” 规格: 副本:1份 选择器: 火柴标签: 应用程序:“nginx-5” 模板: 元数据: 注释: vault.hashicorp.com/agent-inject:“true” vault.hashicorp.com/agent-inject-secret-credentials.conf:secret/ABC_CONFIG vault.hashicorp.com/role:role\u name 标签: 应用程序:“nginx-5” 规格: 容器: -名称:“nginx-5” 图片:“nginx:最新版本” serviceAccountName:服务\u帐户\u名称 虽然Kubernetes通过Vault成功获得授权,但读取特定密钥失败,返回403


感谢您的帮助。

看起来Vault角色中定义的服务帐户或角色名称与部署中的名称都不匹配

  • 服务帐户=服务帐户名称
  • 角色=角色名称
  • 服务帐户=sa vault验证
  • 角色=apims
spec:
副本:1份
选择器:
火柴标签:
应用程序:“nginx-5”
模板:
元数据:
注释:
vault.hashicorp.com/agent-inject:“true”
vault.hashicorp.com/agent-inject-secret-credentials.conf:secret/ABC_CONFIG

vault.hashicorp.com/role:apims我错了,忘了删除kubernetes部署文件的更改名称,但我在所有位置使用相同的角色/策略和serviceAccount。仍然是同样的错误。我也会更新这个问题,谢谢。你有没有发现其他可能引起问题的东西?我没有,一定是名字不匹配。
vault write auth/kubernetes/role/role_name\
    bound_service_account_names=service_account_name \
    bound_service_account_namespaces=default \
    policies=policy_name \
    ttl=24h
vault write auth/kubernetes/role/role_name\
    bound_service_account_names=service_account_name \
    bound_service_account_namespaces=default \
    policies=policy_name \
    ttl=24h