如何通过Azure Graph查询获取存储账户的容器及公共访问级别?
获取存储账户及其容器的公共访问级别Azure Graph查询
要获取每个存储账户对应的容器名称和公共访问级别,你需要查询存储容器类型的资源,并将其与存储账户数据关联。以下是调整后的完整查询:
// 查询所有存储容器,提取关联的存储账户名称、容器名和公共访问级别 resources | where type == 'microsoft.storage/storageaccounts/blobServices/containers' | extend storageAccountName = split(id, '/')[8] | project storageAccountName, containerName = name, publicAccessLevel = properties.publicAccess, subscriptionId, resourceGroup // 关联存储账户的详细信息 | join kind=inner ( resources | where type == 'microsoft.storage/storageaccounts' | project storageAccountName = name, sku, properties, tags, resourceGroup, tenantId, subscriptionId, location ) on storageAccountName, subscriptionId, resourceGroup // 关联订阅名称 | join kind=inner ( resourcecontainers | where type == 'microsoft.resources/subscriptions' | project subscriptionId, subscriptionName = name ) on subscriptionId // 整理输出字段 | project storageAccountName, containerName, publicAccessLevel, sku, properties, tags, resourceGroup, tenantId, subscriptionId, location, subscriptionName
关键说明:
- 存储容器的资源类型是
microsoft.storage/storageaccounts/blobServices/containers,通过split(id, '/')[8]可以从容器的资源ID中提取所属的存储账户名称 - 公共访问级别字段对应
properties.publicAccess,可能的取值包括Container、Blob或None(无公共访问) - 通过两次join分别关联存储账户的详细信息和订阅名称,确保输出数据完整
内容的提问来源于stack exchange,提问作者Alfredo Fernandez
相关产品推荐
相关产品推荐

