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

如何在Bicep中用resourceId跨资源组引用密钥保管库URI

修改Bicep模块支持跨资源组密钥保管库配置

要让存储账户能引用不同资源组的密钥保管库,只需做两处调整:

  • 添加参数指定密钥保管库所在资源组,默认值设为当前部署资源组,兼容原有同组场景
  • 调整resourceId函数调用,传入密钥保管库的资源组名称

修改后的完整代码:

// 新增参数:密钥保管库所属资源组,默认使用当前部署的资源组
param keyVaultResourceGroupName string = resourceGroup().name

resource AssignCMKtoStorageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: AssignCMKtoStorageAccountName
  location: location
  tags: appliedTags
  kind: 'StorageV2'
  sku: {
    name: skuName
  }
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    publicNetworkAccess: 'Disabled'
    allowBlobPublicAccess: false
    networkAcls: {
      bypass: 'AzureServices'
      defaultAction: 'Deny'
    }
    encryption: {
      services: {
        file: {
          enabled: true
        }
        blob: {
          enabled: true
        }
      }
      keySource: 'Microsoft.Keyvault'
      keyvaultproperties: {
        keyname: CMKName
        // 修改resourceId调用,指定密钥保管库的资源组
        keyvaulturi: reference(resourceId(keyVaultResourceGroupName, 'Microsoft.KeyVault/vaults', keyVaultName), '2016-10-01', 'full').properties.vaultUri
      }
    }
  }
}

关键说明

  • keyVaultResourceGroupName参数默认使用当前资源组,所以密钥保管库与存储账户同组时,无需额外传参,保持原有使用逻辑
  • resourceId(keyVaultResourceGroupName, 'Microsoft.KeyVault/vaults', keyVaultName)会生成跨资源组的密钥保管库资源ID,确保reference能正确获取到其URI
  • 注意:需确保存储账户的系统身份已被授予密钥保管库的Key Vault Crypto Service Encryption User权限,否则CMK配置会失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:16:02