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

使用ARM为现有共享Key Vault添加Secrets和访问策略会覆盖原有配置吗

如何使用ARM模板为Azure现有共享Key Vault新增Secrets且不覆盖原有内容

我正在查找如何使用ARM为Azure中被其他应用共享使用的现有Key Vault添加Secrets和访问策略的相关信息,已阅读相关文档。
当前核心疑问:在自有服务的解决方案中编写新的ARM模板和参数文件,部署时是否会覆盖或删除Key Vault内已有的内容?
我已将DevOps的CICD流水线部署模式设置为*incremental(增量)*模式,仅用于资源的更新和创建。

实操验证结果

最终摸索出了正确的处理方式:先创建了一个新的Key Vault资源,添加若干Secrets和访问策略,模拟需要新增Secrets的已有共享Key Vault场景,之后编写了如下模板:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "keyVault": {
      "type": "string"
    },
    "Credentials1": {
      "type": "secureString"
    },
    "SecretName1": {
      "type": "string"
    },
    "Credentials2": {
      "type": "secureString"
    },
    "SecretName2": {
      "type": "string"
    }
  },
  "variables": {
  },
  "resources": [
    {
      "type": "Microsoft.KeyVault/vaults/secrets",
      "name": "[concat(parameters('keyVault'), '/', parameters('SecretName1'))]",
      "apiVersion": "2015-06-01",
      "properties": {
        "contentType": "text/plain",
        "value": "[parameters('Credentials1')]"
      }
    },
    {
      "type": "Microsoft.KeyVault/vaults/secrets",
      "name": "[concat(parameters('keyVault'), '/', parameters('SecretName2'))]",
      "apiVersion": "2015-06-01",
      "properties": {
        "contentType": "text/plain",
        "value": "[parameters('Credentials2')]"
      }
    }
  ],
  "outputs": {}
}

经过验证结论如下:

  • 要为已有共享Key Vault添加Secrets,仅需要定义Microsoft.KeyVault/vaults/secrets子资源即可,也就是仅声明本次要新增到已有Key Vault的Secrets资源
  • 该模板在增量部署模式下运行正常,除了新增指定的Secrets外,不会修改已有Key Vault的任何其他配置,也不会删除原有Secrets
  • 目前该方案暂未实现全自动化,还无法自动添加对应资源的Principal ID(身份标识),但已经可以免去手动逐个添加Secrets的操作,Principal ID可暂时手动添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:24:03