Azure Policy技术咨询:能否定义策略查找无标签资源并在Compliance节点展示?
如何创建Azure Policy查找未添加标签的资源
当然可以创建这样的Azure Policy!Azure Policy自带的定义里确实没有直接对应这个场景的,但自定义起来非常简单,我来一步步给你说明:
一、自定义策略的核心规则代码
首先是策略定义的JSON内容,你可以直接用这个模板:
{ "mode": "Indexed", "policyRule": { "if": { "field": "tags", "exists": false }, "then": { "effect": "Audit" } }, "parameters": {}, "metadata": { "category": "Tags" } }
简单解释下:
mode: "Indexed":只针对支持标签和位置的资源(过滤掉一些不支持标签的特殊资源类型,避免不必要的误判)- 规则逻辑:如果资源的
tags字段不存在(也就是完全没有任何标签),就触发Audit效果——这个效果不会阻止资源创建,只会把不合规的资源标记出来,正好符合你要在合规节点查看的需求。
如果你的需求是检查缺少某个特定标签(比如必须有CostCenter标签),可以把规则改成这样:
{ "mode": "Indexed", "policyRule": { "if": { "field": "tags['CostCenter']", "exists": false }, "then": { "effect": "Audit" } }, "parameters": {}, "metadata": { "category": "Tags" } }
只需要把tags['CostCenter']里的键名换成你需要检查的标签即可。
二、在Azure门户部署策略的步骤
- 登录Azure门户,找到「Policy」服务(直接在顶部搜索框搜Policy就行)
- 点击左侧菜单的「Definitions」(策略定义),然后点击顶部的「+ Policy definition」
- 填写基础信息:
- 定义位置:选择你要应用这个策略的订阅或管理组
- 名称:比如“审计无标签的资源”,方便识别
- 描述:可以写“标记所有未添加任何标签的Azure资源”
- 类别:选「Tags」就好,或者自定义一个类别
- 找到「Policy rule」区域,把默认的JSON删掉,粘贴上面的自定义规则代码
- 点击「Save」保存这个策略定义
- 接下来要分配策略才能生效:点击左侧「Assignments」,然后「+ Assign policy」,选择你刚创建的策略定义,指定要覆盖的范围(订阅、资源组都可以),确认后点击「Assign」
三、查看合规结果
策略分配后,Azure需要一点时间来扫描评估你的资源(快的话几分钟,资源多的话可能几十分钟),之后你就能在「Compliance」(合规)节点下看到所有未添加标签的资源——它们会被标记为「Non-compliant」(不合规),完全符合你的需求。
内容的提问来源于stack exchange,提问作者Phil
相关产品推荐
相关产品推荐

