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

能否利用Azure Policy在新虚拟机创建验证阶段触发失败?

Azure Policy虚拟机创建验证拦截及相关需求解决方案

1. 验证阶段触发失败,避免提前创建VNet等资源

你当前的政策仅针对Microsoft.Compute/virtualMachines,而VNet这类依赖资源不在拦截范围内,导致门户先创建合规的VNet,再因VM不合规失败。要在验证阶段就拦截整个部署,有两种可行方案:

  • 针对部署资源编写政策:创建Deny类型政策,目标资源设为Microsoft.Resources/deployments,检查部署模板中包含的VM SKU是否在允许列表内。门户验证时会扫描整个部署包,发现不合规直接报错,不会创建任何资源。
  • 调整现有政策的模式和范围:将现有SKU限制政策的mode修改为All(默认是Indexed,仅扫描支持索引的资源),并将政策范围设置为目标资源组或订阅。这样政策会评估所有部署依赖项,在验证阶段就触发拦截。

2. 限制门户下拉选项(隐藏不合规选项)

Azure Policy无法直接隐藏门户中的下拉选项,但可以通过以下方式实现类似的限制效果:

  • 强化验证拦截体验:使用内置的Allowed virtual machine SKUs政策,设置为Deny模式。用户选择不合规SKU时,门户验证步骤会立即报错,无法进入后续创建环节。
  • 自定义门户界面(预览功能):利用Azure Portal的自定义预览功能,针对特定用户组隐藏不合规的SKU选项。需注意此功能目前处于预览阶段,需按需评估可用性。
  • 封装为托管应用:将VM创建流程封装为Azure托管应用,在应用界面中仅展示允许的SKU选项,彻底限制用户的选择范围。

3. 针对特定资源组报错

要实现仅在特定资源组选错选项时触发报错,可通过两种方式设置:

  • 限定政策分配范围:将SKU限制政策仅分配给目标资源组,其他资源组不受该政策约束。
  • 在政策规则中添加资源组条件:修改政策规则,加入where resourceGroup().name == '目标资源组名称'的条件,仅当在该资源组内创建VM时,才触发SKU合规检查和拦截。

补充:你提到的ARM模板场景,现有Deny政策即可处理——ARM模板部署会一次性评估所有资源的合规性,一旦不合规则整个部署直接失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:17:24