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

如何在Helm中调用HashiCorp Vault存储的密钥与配置

迁移Helm存储值到HashiCorp Vault并通过Helm调用的实操步骤

一、Vault 前置配置

  • 确认本地K8s集群已部署Vault,完成初始化、unseal操作,并配置好基础访问策略。
  • 启用KV版本2引擎(推荐支持版本控制):
    vault secrets enable -path=helm-secrets kv-v2
    
  • 创建K8s服务账户,为其分配仅能读取helm-secrets路径的Vault策略,并绑定Vault的K8s认证方法,确保集群内组件可通过K8s身份访问Vault。

二、迁移Helm中的值到Vault

1. 导出现有Helm值

从已部署的Helm release中导出所有配置值,方便提取需要迁移的敏感数据:

helm get values <你的release名称> --all > helm-values-backup.yaml

从备份文件中筛选出需要迁移的环境变量、密钥等敏感内容,整理成键值对格式。

2. 写入Vault KV引擎

用vault kv put命令将整理好的值写入Vault:

# 单个键值写入
vault kv put helm-secrets/<你的应用名称> db_password=xxx api_key=yyy

# 批量写入(将键值存为JSON文件后导入)
vault kv put helm-secrets/<你的应用名称> @secrets.json

注意:敏感值优先用文件批量写入,避免命令行历史泄露。

三、通过Helm调用Vault中的值

以下两种方案按需选择:

方案1:使用Helm-Vault插件(直接在Helm命令中读取)

  • 安装helm-vault插件:
    helm plugin install https://github.com/hashicorp/vault-helm-plugin
    
  • 配置Vault访问参数:
    export VAULT_ADDR=https://你的Vault端点:8200
    # 若使用K8s认证,获取服务账户JWT并生成Vault令牌
    export VAULT_TOKEN=$(vault write -field=token auth/kubernetes/login role=helm-role jwt=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token))
    
  • 在Helm操作中引用Vault值:
    直接在--set参数中使用vault://路径:
    helm upgrade --install <你的应用名称> ./你的chart目录 \
      --set db.password=vault://helm-secrets/<你的应用名称>/db_password \
      --set api.key=vault://helm-secrets/<你的应用名称>/api_key
    
    或在values.yaml中直接配置引用路径,再执行Helm安装/升级命令:
    db:
      password: vault://helm-secrets/<你的应用名称>/db_password
    api:
      key: vault://helm-secrets/<你的应用名称>/api_key
    

方案2:使用Vault Agent Injector(Pod运行时注入)

此方案无需修改Helm的核心配置,通过Sidecar容器自动注入Vault值:

  • 确保Vault Helm chart部署时已启用Agent Injector组件。
  • 在应用chart的Deployment模板中添加Vault注解:
    metadata:
      annotations:
        vault.hashicorp.com/agent-inject: "true"
        vault.hashicorp.com/role: "<你的应用Vault角色>"
        vault.hashicorp.com/secrets-path: "helm-secrets/<你的应用名称>"
        vault.hashicorp.com/env-inject: "true"
    
    Pod启动时,Vault Agent会自动将指定路径下的键值注入为环境变量,应用直接读取环境变量即可,Helm仅需管理注解配置。

四、关键注意事项

  • 迁移完成后,清理Helm中存储的敏感值,删除旧values文件中的敏感内容并重新打包chart。
  • 遵循最小权限原则,给Vault访问策略仅授予必要路径的读取权限。
  • 先在非生产环境验证流程,确保值能正确读取和注入后再推广到生产环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:36:18