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

Azure策略审核经典SQL漏洞评估:添加扫描条件后未检测资源

Azure策略无法检测未启用SQL漏洞评估定期扫描资源的原因及修复

你的问题出在未考虑“漏洞评估未配置”的场景:

当SQL服务器还没配置过漏洞评估时,Microsoft.Sql/servers/vulnerabilityAssessments/recurringScans.isEnabled这个属性字段根本不存在于资源的属性数据中。而你用了allOf组合所有条件,只要有一个条件不满足(比如字段不存在时,notEquals "true"的判断不成立),整个规则就不会匹配任何资源。

换句话说:

  • 已配置漏洞评估但关闭定期扫描的资源:字段存在且值为false,notEquals "true"成立,但要和前两个条件一起满足才会被匹配
  • 未配置漏洞评估的资源:字段不存在,notEquals "true"的条件直接不成立,所以不会被allOf匹配
  • 已开启定期扫描的资源:字段值为true,notEquals "true"不成立,也不会被匹配

最终导致没有资源符合所有条件。

修复后的策略规则

你需要用anyOf来覆盖“字段不存在”和“字段值不等于true”两种情况,修改后的policyRule如下:

"policyRule": {
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Sql/servers"
      },
      {
        "field": "kind",
        "notContains": "analytics"
      },
      {
        "anyOf": [
          {
            "field": "Microsoft.Sql/servers/vulnerabilityAssessments/recurringScans.isEnabled",
            "notEquals": "true"
          },
          {
            "field": "Microsoft.Sql/servers/vulnerabilityAssessments/recurringScans.isEnabled",
            "exists": false
          }
        ]
      }
    ]
  }
}

这样就能同时检测到两类资源:

  • 未配置漏洞评估的经典SQL服务器
  • 已配置漏洞评估但关闭了定期扫描的经典SQL服务器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:49:58