在AWS EKS中通过Sidecar从HashiCorp Vault获取秘钥遇阻求助
问题排查与修复方案
1. KV引擎版本路径不匹配
你使用vault kv put secrets/mydemo-eks/config写入密钥,若你的secrets引擎是KV v1版本,正确的读取路径应为secrets/mydemo-eks/config,而非secrets/data/mydemo-eks/config(该格式属于KV v2)。
- 修复策略配置:更新策略路径
vault policy write mydemo-eks-policy - <<EOF path "secrets/mydemo-eks/config" { capabilities = ["read"] } EOF - 修复Pod注解:调整密钥路径
将Pod注解中vault.hashicorp.com/agent-inject-secret-credentials.txt的值修改为secrets/mydemo-eks/config
2. 确认Vault角色与策略绑定
检查mydemo-eks-role是否已关联mydemo-eks-policy:
vault read auth/mydemo-eks/role/mydemo-eks-role
查看输出的policies字段,若未包含目标策略,执行绑定命令:
vault write auth/mydemo-eks/role/mydemo-eks-role \ bound_service_account_names=mydemo-sa \ bound_service_account_namespaces=<你的Pod所在命名空间> \ policies=mydemo-eks-policy \ ttl=1h
3. 验证EKS Auth方法配置
确认auth/mydemo-eks这个EKS认证方法的集群信息配置正确:
vault read auth/mydemo-eks/config
检查kubernetes_host是否指向你的EKS集群API地址,kubernetes_ca_cert是否有效。
4. 检查ServiceAccount对应IAM权限
确保mydemo-sa绑定的IAM角色具备访问Vault EKS认证的权限,IAM策略需包含允许sts:AssumeRole的权限,且Vault的EKS认证角色已正确绑定该ServiceAccount的名称和命名空间。
内容的提问来源于stack exchange,提问作者Hardik Patel
相关产品推荐
相关产品推荐

