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

如何创建Azure Policy并阻止用户通过Azure门户手动创建虚拟机?

用Azure Policy阻止通过Azure门户创建虚拟机的方案

核心逻辑

Azure Policy可以通过校验请求的客户端应用ID区分发起来源:Azure门户有固定的官方客户端ID,而你的az命令行自动化程序如果是依托服务主体运行的,会对应唯一的服务主体ID。我们可以创建一条拒绝策略,仅拦截来自Azure门户的虚拟机创建请求,允许其他合法身份(比如你的自动化服务主体)的操作。

步骤1:确认Azure门户的客户端ID

Azure门户对应的固定客户端ID为:04b07795-8ddb-461a-bbee-02f9e1bf7b46(该ID由微软官方固定,不会随意变更)

步骤2:创建自定义Azure Policy定义

创建**拒绝(Deny)**类型的策略,目标资源为虚拟机的创建操作(Microsoft.Compute/virtualMachines/write),添加条件判断请求的客户端ID是否为Azure门户的ID。如果你的自动化程序使用特定服务主体,可额外添加例外规则,避免误拦截。

基础版策略规则(仅拦截门户请求)

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Compute/virtualMachines"
        },
        {
          "field": "requestContext.clientApplicationId",
          "equals": "04b07795-8ddb-461a-bbee-02f9e1bf7b46"
        }
      ]
    },
    "then": {
      "effect": "Deny"
    }
  },
  "parameters": {}
}

扩展版策略规则(允许指定服务主体)

如果你的自动化程序是通过服务主体身份运行的,可修改策略添加例外,允许该服务主体的请求:

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Compute/virtualMachines"
        },
        {
          "field": "requestContext.clientApplicationId",
          "equals": "04b07795-8ddb-461a-bbee-02f9e1bf7b46"
        },
        {
          "not": {
            "field": "requestContext.clientApplicationId",
            "in": [
              "你的自动化服务主体ID",
              "其他需要放行的客户端ID"
            ]
          }
        }
      ]
    },
    "then": {
      "effect": "Deny"
    }
  },
  "parameters": {}
}

步骤3:分配策略到目标订阅

  1. 登录Azure门户,进入Policy服务
  2. 左侧菜单选择定义,点击**+ 自定义定义**,粘贴上述JSON内容,填写策略名称(如“拒绝从Azure门户创建虚拟机”)和描述
  3. 定义完成后,进入分配页面,选择要应用的订阅,可按需设置范围排除(比如特定资源组无需拦截)
  4. 完成分配后,策略会在数分钟内生效,此后用户通过门户创建虚拟机将被拒绝,而你的az命令行自动化程序可正常执行创建操作

验证策略效果

  • 测试通过Azure门户创建虚拟机,会收到“请求被策略拒绝”的提示
  • 运行你的自动化程序,确认虚拟机可正常创建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:10:26