如何使用Azure Resource Graph列出资源组锁
Azure Resource Graph 查询资源组锁
要获取资源组级别的锁,你需要在AuthorizationResources表中筛选锁资源,并关联ResourceContainers表匹配对应资源组信息(或直接解析锁的scope字段),以下是两种可行的查询方式:
方式一:关联表查询(推荐,更可靠)
通过关联资源组表获取信息,避免直接解析字符串可能出现的格式问题:
AuthorizationResources | where type == "microsoft.authorization/locks" | extend resourceGroupId = strcat_array(split(scope, "/")[0..4], "/") | join kind=inner ( ResourceContainers | where type == "microsoft.resources/subscriptions/resourcegroups" | project resourceGroupId = id, resourceGroupName = name, subscriptionId = subscriptionId ) on resourceGroupId | project 锁名称 = name, 锁级别 = properties.level, 资源组名称 = resourceGroupName, 订阅ID = subscriptionId, 锁描述 = properties.notes, 锁ID = id
方式二:直接解析Scope字段(轻量快速)
如果不需要复杂关联,可直接从锁的scope字段提取资源组和订阅信息:
AuthorizationResources | where type == "microsoft.authorization/locks" // 过滤仅保留资源组级锁 | where scope matches regex @"\/subscriptions\/[^\/]+\/resourceGroups\/[^\/]+$" | extend resourceGroupName = split(split(scope, "/resourceGroups/")[1], "/")[0], subscriptionId = split(scope, "/")[2], lockLevel = properties.level | project 锁名称 = name, 锁级别 = lockLevel, 资源组名称 = resourceGroupName, 订阅ID = subscriptionId, 锁描述 = properties.notes
关键说明
- 锁资源存储在
AuthorizationResources表中,类型固定为microsoft.authorization/locks - 资源组级锁的
scope格式为/subscriptions/{订阅ID}/resourceGroups/{资源组名称},可通过该特征过滤或解析 properties.level对应锁的级别(CanNotDelete或ReadOnly)
内容的提问来源于stack exchange,提问作者SIVA KUMAR KALLURI
相关产品推荐
相关产品推荐

