【Azure Policy】实现拒绝新建/可以修改已存在资源的 Azure Policy 方案

简介: 本文介绍如何在Azure中通过结合Audit策略、豁免(Exemption)和Deny策略,实现“禁止新建资源但允许修改已有资源”的管控需求,解决Azure Policy无法直接区分创建与修改操作的限制,提供一种实用的变通方案。

问题描述

在使用Azure的日常工作中,很可能面临这样的情况。

为了避免资源的随意创建或是从成本考虑,只能对已有资源进行修改,不允许创建新的资源。

在Azure上,是否有方案可以实现这一需求呢?

第一时间想到的方案是使用Azure Policy。但是,在经过分析后,发现使用Policy的Deny策略,它会一锅端。任何符合要求的操作(新建,修改,删除) 都会被Deny,无法实现以上需求。

 

基于AI时代解决问题的新思路,问题先问大模型。得到回答如下:

Azure Policy本身是一个治理工具,它通过定义策略来控制资源的创建和配置,但它的能力有一些限制:

能否区分“新建”和“修改”?

  • Azure Policy主要在资源创建或更新时触发,但它无法直接判断操作是“新建”还是“修改”,因为在技术上,两者都是 PUT 请求。
  • Policy的effect(如 deny,audit )会在资源属性不符合策略时生效,而不是基于操作类型。

是否可以实现“拒绝新建,允许修改”?

直接实现:不行,因为Policy无法区分首次创建和后续更新。

 

既然直接实现不可以,那么本文就介绍一种代替方案。

思路如下:

第一步:创建一个Audit Policy,分配到对于的资源上,然后触发策略评估

第二步:为扫描后不合规的资源添加豁免(exemption)

第三步:修改 Audit Policy 为 Deny Policy

已存在的资源就会被豁免不进行策略评估,而新建资源因为不在豁免列表中,所以会被Deny策略拒绝

操作步骤

第一步:创建一个Audit Policy

Audit Policy的范围是针对指定的区域不允许新建资源,比如中国东部二区数据中心( China East 2)

策略内容如下

{
  "mode": "All",
  "policyRule": {
    "if": {
      "field": "location",
      "In": "[parameters('disAllowedLocations')]"
    },
    "then": {
      "effect": "Audit"
    }
  },
  "parameters": {
    "disAllowedLocations": {
      "type": "Array",
      "metadata": {
        "displayName": "Disallowed locations",
        "description": "The list of allowed locations for resources.",
        "strongType": "location"
      }
    }
  }
}

创建后分配,并查看Compliance结果。

PS: 为避免等待,可以使用 az policy state trigger-scan --resource-group "your resource group name" 来触发策略评估

 

第二步:再分配中添加豁免

这里需要一个资源一个资源的添加,或者是通过一个资源选择器来添加有相同点的资源

说明:Exemption category有两个值 Waiver 和 Mitigated

Waiver 的含义 表示该资源或范围完全豁免策略评估,即策略不再对它进行合规性检查。

  效果:策略不会再标记该资源为“不合规”,不会触发 denyaudit

Mitigated的含义 表示该资源仍然不符合策略要求,但由于有补偿措施(Mitigation),所以不再视为风险。

  效果:策略仍会评估,但在合规报告中标记为“已缓解”(Mitigated),不会影响整体合规评分。

 

第三步:把第一步中的 Audit Policy修改为Deny

回到第一步中创建的这个Policy Definition,点击"Edit Definition"。把

{ "effect": "Audit" }

修改为

{ "effect": "Deny" }

即可!

 

第四步:测试新建资源

当创建新资源的时候,会提示创建失败,因为没有通过策略评估

Deployment validation failed.

Additional details from the underlying API that might be helpful: The template deployment failed because of policy violation.

Please see details for more information.

 

第五步:测试修改被豁免的资源

对第二步中豁免的Redis资源进行修改,可以成功!

 

经过第四步和第五步的验证,成功的通过Azure Policy实现了对新添加资源的拒绝,并且不影响对已经存在资源的修改操作。

 

问题一:是否可以在第三步修改Policy为Deny后,在去添加豁免呢?

不可以,因为这个添加也是对资源的修改。如果没有提前豁免,就会被Deny策略所阻止,得到 Resource was disallowed by policy 错误提示。

 

 

参考资料

Azure Policy 豁免结构 : https://docs.azure.cn/zh-cn/governance/policy/concepts/exemption-structure

 

 

 


 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
3月前
|
运维 监控 数据可视化
故障发现提速 80%,运维成本降 40%:魔方文娱的可观测升级之路
魔方文娱携手阿里云构建全栈可观测体系,实现故障发现效率提升 80%、运维成本下降 40%,并融合 AI 驱动异常检测,迈向智能运维新阶段。
397 54
|
3月前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
1553 59
Meta SAM3开源:让图像分割,听懂你的话
|
3月前
|
人工智能 前端开发 算法
大厂CIO独家分享:AI如何重塑开发者未来十年
在 AI 时代,若你还在紧盯代码量、执着于全栈工程师的招聘,或者仅凭技术贡献率来评判价值,执着于业务提效的比例而忽略产研价值,你很可能已经被所谓的“常识”困住了脚步。
1844 89
大厂CIO独家分享:AI如何重塑开发者未来十年
|
3月前
|
机器学习/深度学习 人工智能 缓存
让AI评测AI:构建智能客服的自动化运营Agent体系
大模型推动客服智能化演进,从规则引擎到RAG,再到AI原生智能体。通过构建“评估-诊断-优化”闭环的运营Agent,实现对话效果自动化评测与持续优化,显著提升服务质量和效率。
1890 86
让AI评测AI:构建智能客服的自动化运营Agent体系
|
2月前
|
人工智能 自然语言处理 算法
2025 全球GEO优化行业年度观察:AI商业化元年,国产服务商异军突起
2025年,生成式引擎优化(GEO)从技术小众迈向企业营销标配,市场规模达480亿元,跨境增速超90%。AI搜索普及推动流量逻辑变革,即搜AI、边鱼科技引领技术突破与普惠落地,合规化、垂直化成未来趋势,GEO正重塑企业数字营销新格局。
|
2月前
|
人工智能 数据可视化 安全
阿里云建站:AI万小智,万小智AI建站送.cn域名
万小智是阿里云推出的AI数字员工,面向企业及个人提供AI驱动的自助建站服务。支持对话建站、AI生成配图与内容,预置千套模板,多端适配,可视化拖拽操作,集成云服务器、数据库、CDN等云服务,保障安全高效。活动期间,购建站产品送.CN域名首年免费,新客首年仅99元起,助力用户低成本快速搭建专业官网并实现智能运营。
|
2月前
|
关系型数据库 MySQL 数据库
基于python的电子商城购物系统
本研究基于Flask与Vue.js构建前后端分离的电商管理系统,结合MySQL实现高效数据管理。系统具备商品管理、订单处理、用户交互等功能,提升运营效率与用户体验,具有良好的扩展性与维护性,助力电商企业应对激烈市场竞争,推动智能化发展。
|
2月前
|
SQL 关系型数据库 Apache
Apache Doris 实时更新全解:从设计原理到最佳实践|Deep Dive
本文档将作为一份官方指南,系统性地阐述 Apache Doris 的数据更新能力,内容涵盖其核心原理、多样的更新与删除方式、典型的应用场景,以及在不同部署模式下的性能最佳实践,旨在帮助您全面掌握并高效利用 Doris 的数据更新功能。
276 0
Apache Doris 实时更新全解:从设计原理到最佳实践|Deep Dive
|
2月前
|
数据采集 缓存 监控
小红书 item_search - 关键词取商品列表接口对接全攻略:从入门到精通
小红书商品关键词搜索接口(item_search)为第三方合规封装工具,支持通过关键词批量获取平台内美妆、穿搭、家居等类目商品信息,涵盖价格、销量、评分、店铺及关联笔记数据,适用于选品分析、竞品监测、市场调研等场景。本攻略详解接口核心功能、参数配置、签名生成、Python调用示例及调试优化技巧,结合分页处理、异步请求与缓存策略,助力开发者高效稳定对接,规避合规风险,实现生产级应用。