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

Azure Policy DeployIfNotExists无法修改Defender for Servers计划问题

问题排查与解决方案

针对你的Azure Policy修复任务显示成功但Defender for Servers计划未从P2改为P1的问题,以下是具体排查方向和修复方案:

1. 部署模板API版本过低

当前部署模板使用的Microsoft.Security/pricings API版本为2018-06-01,该早期版本不支持修改subPlan属性。需更新为较新的API版本,推荐使用2023-01-01:

{
  "type": "Microsoft.Security/pricings",
  "apiVersion": "2023-01-01",
  "name": "VirtualMachines",
  "properties": {
    "pricingTier": "Standard",
    "subPlan": "[parameters('plan_type')]"
  }
}

2. 部署模式导致配置未覆盖

当前部署模板使用incremental模式,对于已有资源的属性修改可能未生效。可将模式改为Complete(仅针对该单资源场景,不会影响其他订阅资源),强制覆盖配置:

"properties": {
  "mode": "Complete",
  "parameters": {
    "plan_type": {
        "value": "[parameters('plan_type')]"
    }
  },
  // 其余模板内容保持不变
}

3. 系统托管身份权限范围不足

当前角色分配作用于管理组级别,虽然权限会继承到订阅,但可能存在延迟或权限覆盖问题。建议直接在目标订阅上分配权限,确保身份拥有修改订阅级pricings资源的权限:

# 示例:为单个订阅分配权限(批量场景可遍历订阅列表)
resource "azurerm_role_assignment" "ra_dfserver_subscription" {
  scope                = "/subscriptions/你的订阅ID"
  role_definition_name = "Security Admin"
  principal_id         = azurerm_management_group_policy_assignment.dfserver_sandbox_assignment.identity[0].principal_id
}

4. 手动验证部署模板有效性

将部署模板单独导出,在Azure门户中手动执行订阅级部署,传入plan_type参数为P1:

  • 如果手动部署失败:说明模板本身存在逻辑问题,需进一步检查subPlan参数传递或资源配置
  • 如果手动部署成功:问题出在策略触发逻辑或权限继承上,需重新触发策略合规扫描并等待执行

5. 策略存在条件确认

当前存在条件逻辑正确(识别subPlan不等于P1的订阅为不合规),但需检查活动日志中的部署详情,确认是否有实际的subPlan修改操作记录,排除部署任务未实际执行的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:52:48