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

使用BICEP创建带访问策略的Key Vault时生成复合身份的问题

问题:如何通过BICEP将服务主体以「应用」身份添加到Key Vault访问策略,而非复合身份?

我正在为企业应用使用BICEP创建Azure基础设施,我们的应用通过服务主体(application)使用Key Vault存储和检索机密。当我通过BICEP创建Key Vault并关联服务主体时,该主体在Key Vault访问策略中被创建为复合身份(compound identity)。我需要将其添加为‘application’,就像在Azure门户手动添加时的效果一样。请问如何将服务主体添加为应用而非复合身份?

当前使用的BICEP代码:

resource accessPolicydev 'Microsoft.KeyVault/vaults/accessPolicies@2023-07-01' = {
  parent: keyvaultExisting
  name: 'add'
  properties: {
    accessPolicies: [
      {
        tenantId: tenantId
        objectId: objectId
        applicationId: applicationId
        permissions: {
          secrets: [
            'all'
          ]
          certificates: [
            'all'
          ]
          keys: [
            'all'
          ]
        }        
      }    
    ]
  }
}

Azure门户手动添加应用的界面:
Azure门户中以应用身份添加服务主体的界面


解决方案

问题根源在于你同时指定了objectId和applicationId字段——当这两个参数同时存在时,Azure会将其识别为复合身份。要实现和门户手动添加一致的「应用」身份效果,只需移除objectId字段,仅保留tenantId和applicationId即可。

修改后的BICEP代码:

resource accessPolicydev 'Microsoft.KeyVault/vaults/accessPolicies@2023-07-01' = {
  parent: keyvaultExisting
  name: 'add'
  properties: {
    accessPolicies: [
      {
        tenantId: tenantId
        applicationId: applicationId // 仅保留应用ID,移除对象ID
        permissions: {
          secrets: [
            'all'
          ]
          certificates: [
            'all'
          ]
          keys: [
            'all'
          ]
        }        
      }    
    ]
  }
}

当仅传递applicationId时,Key Vault会直接将该服务主体识别为独立的「应用」身份,完全匹配你在Azure门户手动选择应用的配置效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:02:33