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

如何配置Azure Policy例外规则,允许特定资源部署私有DNS区域

实现方法

1. 编辑现有禁止策略

找到你之前创建的「禁止部署私有DNS区域」策略,进入定义编辑界面。

2. 修改策略规则逻辑

原策略是直接拒绝所有Microsoft.Network/privateDnsZones类型资源的创建,现在需要添加例外条件,通过allOf+not+anyOf的逻辑组合,实现「除指定场景外一律禁止」的效果。

核心逻辑

拒绝创建私有DNS区域,除非满足以下任一条件:

  • DNS区域名称匹配AKS、PostgreSQL灵活服务器对应的私有链接域名后缀
  • DNS区域已关联到AKS或PostgreSQL灵活服务器的私有端点

替换后的策略规则(JSON片段)

将原策略中if部分替换为以下代码:

"if": {
  "allOf": [
    {
      "field": "type",
      "equals": "Microsoft.Network/privateDnsZones"
    },
    {
      "not": {
        "anyOf": [
          // 允许AKS相关私有DNS区域(匹配常见私有链接后缀)
          {
            "field": "name",
            "like": "*privatelink.azurecr.io"
          },
          {
            "field": "name",
            "like": "*privatelink.azurecontainer.io"
          },
          // 允许PostgreSQL灵活服务器的私有DNS区域
          {
            "field": "name",
            "like": "*privatelink.postgres.database.azure.com"
          },
          // 允许关联到AKS/PostgreSQL灵活服务器私有端点的DNS区域
          {
            "count": {
              "field": "Microsoft.Network/privateDnsZones/privateEndpoints[*]",
              "where": {
                "anyOf": [
                  {
                    "field": "Microsoft.Network/privateDnsZones/privateEndpoints[*].privateLinkServiceId",
                    "contains": "Microsoft.ContainerService/managedClusters/"
                  },
                  {
                    "field": "Microsoft.Network/privateDnsZones/privateEndpoints[*].privateLinkServiceId",
                    "contains": "Microsoft.DBforPostgreSQL/flexibleServers/"
                  }
                ]
              }
            },
            "greaterOrEquals": 1
          }
        ]
      }
    }
  ]
},
"then": {
  "effect": "Deny"
}

3. 关键逻辑说明

  • 针对PostgreSQL单实例服务器:其私有端点对应的资源类型是Microsoft.DBforPostgreSQL/servers,不在上述允许的私有端点资源类型列表中,因此关联的私有DNS区域会被正常拒绝。
  • 私有端点关联判断是最精准的方式,避免了仅靠域名后缀可能出现的误判。
  • 如果需要新增其他允许的资源类型,只需在anyOf的私有端点判断部分添加对应的资源类型标识即可。

4. 生效与验证

保存策略定义后,更新对应的策略分配,确保新规则生效。建议先在测试环境中验证以下场景:

  • 尝试创建AKS/PostgreSQL灵活服务器关联的私有DNS区域,应允许通过
  • 尝试创建PostgreSQL单实例服务器关联的私有DNS区域,应被拒绝

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:56:06