Azure Policy 分配 - 排除资源类型

Azure Policy Assignment - Exclude Resource Type(s)

我有一个 Azure Policy,它通过 2 个分配验证 2 个资源组的区域。允许的区域是美国中南部和全球。我的问题是每个资源组中都存在我似乎无法摆脱的策略违规行为。例如,在一个资源组中,违反策略的资源是分配本身,我无法更改(或者我不知道如何更改)的区域,也无法将其视为排除项中的可排斥资源列表。对于第二个资源组,失败的项目是一些 SQL 数据库托管实例漏洞评估和一些安全评估;关于这些的有趣部分,当我尝试查看 Azure 无法找到它们的资源时,只有 returns "Resource Not Found",所以不出所料,我也不能排除这些。所以现在我似乎陷入了无法实现 100% 合规性的政策和 2 个分配,我希望有人可以提供解决问题的提示。也许是一种排除资源类型而不是按名称排除的方法,但我愿意接受任何想法。谢谢。

在挖掘预制政策时找到了答案。您可以按照以下方式对 policyRule.if 部分中的类型字段进行限制。只需指定应排除的类型即可。

"policyRule": {
  "if": {
    "allOf": [
      {
        "field": "location",
        "notIn": "[parameters('listOfAllowedLocations')]"
      },
      {
        "field": "location",
        "notEquals": "global"
      },
      {
        "field": "type",
        "notEquals": "Microsoft.AzureActiveDirectory/b2cDirectories"
      }
    ]
  },

向您的策略添加类型限制会有所帮助,但您需要维护排除的资源类型列表。

如果您将政策的 mode 更改为 Indexed,那么您的政策将仅评估实际具有 location 字段的资源。