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

如何在AKS部署阶段更新容器配置并对接Azure Key Vault取值

问题解答

1. 是否需要将敏感值写入values.yaml?

不需要,绝对不能把凭证类敏感值写入values.yaml。非敏感的普通配置项可以写入values.yaml做默认值,敏感值一旦写到values.yaml提交到代码仓库就会有泄露风险,哪怕是私有仓库也不建议这么做,所有敏感凭证必须从Azure Key Vault动态读取。

2. 整体实现逻辑

不需要修改原有Docker镜像,通过Kubernetes + Azure原生能力,部署时自动用Key Vault的取值生成目标.config文件,覆盖镜像内部的原有配置文件即可,核心依赖AKS Workload Identity + Azure Key Vault Provider for Secrets Store CSI Driver实现,具体步骤如下:

  • 先在AKS集群安装两个必备组件:
    • Secrets Store CSI Driver:执行helm install csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver --namespace kube-system
    • Azure Key Vault Provider:执行helm install azure-csi-provider secrets-store-csi-driver/provider-azure --namespace kube-system
  • 为你的应用部署对应的Workload Identity,给该身份分配Azure Key Vault的机密读取权限,避免用固定服务账号凭证带来的泄露风险。
  • 修改你的Helm Chart,新增SecretProviderClass资源,在配置中指定要从Key Vault拉取的所有凭证键值,同时配置文件生成规则,把拉取到的多组键值拼接成你需要的.config文件格式。
  • 在Deployment的Pod模板中配置CSI卷,关联上面创建的SecretProviderClass,把卷直接挂载到镜像内.config文件的所在路径,部署时会自动生成符合你要求的.config文件,覆盖镜像内的原有配置。

3. 轻量化替代方案

如果你的配置项不多,不想额外安装CSI驱动,也可以在部署时临时拉取Key Vault值传入Helm,转成Kubernetes Secret后挂载到.config路径:

  • 先执行Azure CLI拉取凭证存到临时变量:export CONFIG_VAL=$(az keyvault secret show --name app-config --vault-name <你的Key Vault名称> --query value -o tsv)
  • 部署时通过参数传入Helm:helm install my-app ./<你的Chart路径> --set appConfig=$CONFIG_VAL
  • 在Helm模板里把传入的配置值渲染为Secret,直接挂载到镜像内的.config文件路径即可。

注意:所有敏感值不要在任何持久化的配置文件、部署脚本中明文存储,必须运行时从Key Vault拉取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:42:02