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

如何扩展初始Bicep文件实现Key Vault属性加固,无需两次独立部署?

如何在单个Bicep文件中扩展Key Vault的加固配置

你可以通过以下两种更简便的方式,无需维护两个独立部署文件,直接在原始Bicep文件中实现Key Vault的加固属性扩展:


方法1:用参数控制配置阶段(灵活适配不同部署阶段)

通过新增布尔参数来控制是否启用加固属性,第一次部署用基础配置,后续需要加固时仅需修改参数值重新部署即可:

// 单个Bicep文件:keyVault.bicep
param enableHardening bool = false // 默认不启用加固,可按需修改

resource keyVault 'Microsoft.KeyVault/vaults@2023-07-01' = {
  name: 'kv-test-01'
  location: resourceGroup().location
  properties: union(
    // 基础核心配置(保持原有内容)
    {
      tenantId: subscription().tenantId
      sku: {
        family: 'A'
        name: 'standard'
      }
      accessPolicies: []
      // 其他已有的基础属性...
    },
    // 加固属性:仅当enableHardening为true时生效
    enableHardening ? {
      publicNetworkAccess: 'Disabled'
      // 可添加更多加固属性,例如:
      // enableRbacAuthorization: true
      // softDeleteRetentionInDays: 90
    } : {}
  )
}

部署步骤:

  1. 初始部署(基础配置):直接运行默认部署命令,无需修改参数
  2. 加固阶段部署:指定参数enableHardening=true重新部署(Bicep默认使用增量模式,会自动合并属性,不会覆盖现有配置)

方法2:直接更新原始文件并重新部署(最简方式)

Bicep的增量部署模式会自动对比现有资源状态与模板定义,仅更新新增/修改的属性,无需额外操作:

直接在原始的keyVault_1.bicep中添加加固属性,然后重新执行增量部署即可:

// 更新后的keyVault_1.bicep
resource stdKeyVault 'Microsoft.KeyVault/vaults@2023-07-01' = {
  name: 'kv-test-01'
  location: resourceGroup().location
  properties: {
    // 保留所有原有基础属性
    tenantId: subscription().tenantId
    sku: {
      family: 'A'
      name: 'standard'
    }
    accessPolicies: []
    // 新增加固属性
    publicNetworkAccess: 'Disabled'
    // 按需添加其他加固配置...
  }
}

注意事项:

  • 增量部署默认启用,无需额外指定参数
  • 模板中未修改的原有属性(如accessPolicies)会保留现有值,不会被覆盖
  • 如果需要修改已有属性,直接在模板中更新对应值即可

内容的提问来源于stack exchange,提问作者Daniel M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:03:24