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

Azure托管应用:无需手动权限将VM接入现有VNet/子网

Azure市场托管应用VNet接入权限问题解决方案

核心差异:部署权限上下文

手动ARM部署用的是你自身的用户权限(对目标VNet有子网加入权限),但发布到市场后,默认用应用注册的服务主体执行部署——这个服务主体没有访问客户VNet资源组的权限,所以触发LinkedAuthorizationFailed错误。而Cisco的vMX应用用的是用户上下文部署,即部署时调用购买者的用户身份,购买者本身对自己的VNet有足够权限,自然不需要额外配置托管标识。

解决方法:切换到用户上下文部署

在Azure市场发布应用的配置阶段,找到部署设置选项,启用使用用户上下文进行部署。对应到ARM模板的部署资源中,需要指定部署身份使用用户上下文,示例配置如下:

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2021-04-01",
  "name": "[parameters('deploymentName')]",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      "uri": "[parameters('templateUri')]",
      "contentVersion": "1.0.0.0"
    },
    "parameters": "[parameters('templateParameters')]",
    "principalId": "[parameters('userPrincipalId')]"
  }
}

这样部署流程会自动使用购买者的权限完成子网加入操作,不需要客户手动配置权限。

关于ARM模板隐式授权的可能性

不行。Azure的权限边界限制了ARM模板无法跨资源组自动授予权限,你没办法在模板里直接让服务主体获取客户VNet的子网加入权限。唯一的“隐式”方式就是利用用户上下文部署,借助购买者自身的权限完成操作。

备选方案(不推荐)

如果必须用服务主体部署,那就得配置托管标识,并且要求客户提前给这个托管标识分配子网加入权限(或更宽泛的网络参与者角色)到目标VNet。但这会增加客户的部署步骤,体验远不如用户上下文部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:21:05