当前位置: 首页 > news >正文

【Azure Policy】实现拒绝新建/可以修改已存在资源的 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" 来触发策略评估

 

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

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

image

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

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

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

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.

image

 

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

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

image

 

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

 

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

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

image

 

 

参考资料

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

 
 

 

http://www.jsqmd.com/news/60611/

相关文章:

  • 2025年12月儿童助听器验配机构推荐榜:专业评估与客观排名对比分析
  • 2025年五大信誉佳的齐纳式安全栅品牌公司推荐,高效的齐纳式
  • 2025年哈尔滨全屋定制公司五大口碑排名:爱木木业产品怎么样
  • 2025年断桥铝门窗五大品牌推荐,断桥铝门窗知名品牌全解析
  • 2025年度工业流体设备企业排名:上海易勒机电设备有限公司评
  • 神经网络之正交矩阵 - 教程
  • 2025年12月真空袋厂家推荐榜单:五大知名厂商综合对比与选择指南
  • 国内羽绒工厂哪家工艺比较好?这家30年标杆企业用技术交出答卷
  • lock_guard 与 unique_lock:一对“保安”与“管家”的互斥锁双人舞
  • PbootCMS附件上传失败报错“UNKNOW: Code: 8192”的解决方法
  • 寒冬保暖羽绒被怎么选?这 5 个专业品牌带你解锁温暖睡眠新体验
  • 2025进口地板十大品牌综合实力排行榜 - 智能、环保与品质的巅峰对决
  • 2025年12月真空袋厂家综合推荐榜:行业趋势与实操选择要点
  • GODIAG GT327 SUPER DOIP ENET OBDII Scanner - BT4 Voltage Display for iOS/Android/Windows
  • 备婚 _ 结婚 _ 陪嫁 _ 乔迁必看!重要时刻5 大高性价比羽绒被品牌推荐
  • 基于势场法的多智能体机器人编队控制
  • 2025年12月真空袋厂家选择指南:权威维度横向评测解析
  • 2025年工业冷风机在制造业应用实现重大突破,铁皮房车间厂房降温/装配车间通风降温/大型钢结构车间降温工业冷风机生产厂家哪家好
  • pbootcms内页子栏目当前栏目如何实现高亮显示(PbootCMS 内页子栏目当前栏目高亮显示的实现方法)
  • 儿童羽绒被怎么选?这 5 个口碑品牌帮你守护孩子温暖睡眠
  • 2026年X射线防护服源头厂家推荐:射线防护服/铅衣防护服/医用 x 射线防护服公司品牌推荐
  • 从 1000 到 4000 元,5 款高性价比羽绒被品牌解析:技术流博主帮你划重点
  • 2025年市场认证机构推荐:哪家权威性更高?全方位评测与用户口碑分析
  • 2025年12月背单词软件评测排名:从功能到口碑的深度解析
  • ANSYS 2025 R1 仿真算力升级 电子研发提速!ANSYS 2025 R1 下载安装教程 新版本核心优势速递
  • 2025年靠谱的电动缸源头工厂五大推荐,电动缸工厂选哪家全解
  • 2025停经架品牌制造商TOP5权威推荐:甄选的停经架厂家,
  • 2025宁波奢侈品回收TOP5推荐:看哪家奢侈品回收门店可靠
  • 2025年销量领先认证机构推荐:哪家更值得信赖?多维评估与案例比对
  • 2025年度商用净水器服务商TOP5权威推荐:专业选型指南,