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

如何配置Azure生产订阅仅允许ARM模板或Terraform部署、禁用门户手动部署

仅允许ARM/Terraform部署、拦截Azure门户手动部署的配置方案

你之前配置的策略没有区分部署请求的来源,所以会同时拦截合法的IaC部署,可通过以下规则调整实现需求:

核心判断依据

所有Azure门户发起的部署请求,在请求的声明字段中都会携带user_impersonation scope标识,而使用服务主体执行的ARM模板部署、Terraform部署不会包含该标识,可通过该特征区分两种部署类型。

自定义Azure Policy配置规则

创建自定义策略并绑定到你的production订阅或者上层管理组即可,策略的核心规则逻辑如下:

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Resources/deployments"
        },
        {
          "value": "[contains(request().claims['http://schemas.microsoft.com/identity/claims/scope'], 'user_impersonation')]",
          "equals": true
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  }
}

配套规则优化建议

  • 所有IaC部署统一使用专用AAD服务主体执行,禁止使用个人用户账号运行ARM/Terraform部署脚本,避免个人账号的user_impersonation标识触发拦截规则
  • 如需开放应急门户操作权限,可在策略的排除项中添加指定的AAD用户/服务主体对象ID,无需调整策略核心逻辑
  • 规则上线前先在测试订阅完成验证:分别用门户创建测试资源(应触发拦截)、用IaC工具部署相同资源(应正常通过),确认规则符合预期再推送到生产环境

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:39:00