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

如何阻止非全局管理员在Azure创建新Public IP?现有政策是否影响存量资源?

问题解答

现有政策对存量资源的影响

现有政策的deny效果仅作用于新创建NIC或**修改存量NIC(比如添加公网IP到IP配置)**的操作:

  • 已存在且未修改的NIC(已绑定公网IP)不会被政策阻止或变更
  • 如果有人尝试修改存量NIC,给它新增公网IP配置,会被政策拦截

但现有政策存在明显局限:

  • 只管控NIC,没覆盖直接创建Microsoft.Network/publicIPAddresses资源的场景
  • 没区分全局管理员的例外,全局管理员操作也会被拦截
  • 仅通过资源组名称过滤,灵活性不足

更优的政策写法

下面的政策实现了以下目标:

  1. 阻止非全局管理员创建公网IP,或给VM/NIC分配公网IP
  2. 存量资源不受影响(仅拦截新创建/更新操作)
  3. 允许全局管理员绕过限制

政策规则示例

{
  "policyRule": {
    "if": {
      "allOf": [
        {
          "anyOf": [
            // 场景1:创建公网IP资源
            {
              "field": "type",
              "equals": "Microsoft.Network/publicIPAddresses"
            },
            // 场景2:NIC绑定公网IP
            {
              "allOf": [
                {
                  "field": "type",
                  "equals": "Microsoft.Network/networkInterfaces"
                },
                {
                  "field": "Microsoft.Network/networkInterfaces/ipconfigurations[*].publicIpAddress.id",
                  "exists": true
                }
              ]
            },
            // 场景3:VM创建时指定公网IP(通过NIC或直接配置)
            {
              "allOf": [
                {
                  "field": "type",
                  "equals": "Microsoft.Compute/virtualMachines"
                },
                {
                  "anyOf": [
                    {
                      "field": "Microsoft.Compute/virtualMachines/networkProfile.networkInterfaces[*].properties.ipConfigurations[*].publicIpAddress.id",
                      "exists": true
                    },
                    {
                      "field": "Microsoft.Compute/virtualMachines/networkProfile.networkInterfaces[*].properties.publicIpAddress.id",
                      "exists": true
                    }
                  ]
                }
              ]
            }
          ]
        },
        // 排除全局管理员角色的用户
        {
          "not": {
            "field": "jwt.claims.role",
            "equals": "Global Administrator"
          }
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {},
  "metadata": {
    "category": "Network"
  }
}

关键说明

  • 覆盖全场景:同时管控公网IP创建、NIC绑定公网IP、VM创建时关联公网IP三种核心场景
  • 管理员例外:通过jwt.claims.role判断用户角色,全局管理员可正常操作
  • 不影响存量:deny效果仅拦截新创建和更新操作,已存在的资源不受影响
  • 灵活扩展:可根据需求添加资源组、订阅等过滤条件(比如只管控特定订阅)

额外注意事项

  • 政策分配时,可通过排除范围指定不需要管控的资源组/订阅,进一步优化规则
  • 若需要测试政策效果,可先将effect设为audit,观察拦截日志后再改为deny

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:52:54