You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Resource Graph查询Key Vault白名单IP重复问题求助

解决Key Vault白名单IP单条记录展示的KQL查询写法

要实现每个Key Vault对应一行、完整展示所有白名单IP的需求,无需使用mv-expand或join,直接利用KQL的数组处理函数strcat_array即可完成。

正确查询写法

Search-AzGraph -Query "resources
| where type == 'microsoft.keyvault/vaults'
| where properties.publicNetworkAccess == 'Enabled'
| extend ipRules = properties.networkAcls.ipRules
| project 
    kvName = name,
    kvRule = case(
        array_length(ipRules) == 0, 
        '', 
        strcat_array(ipRules.value, ', ')
    )"

原问题分析

  • 初始查询用mv-expand拆分ipRules数组,导致每个IP对应一行,自然出现重复Vault名称和多行记录。
  • 扩展属性后的查询仍依赖mv-expand拆分数组,无法实现单行展示。
  • 使用join的思路错误:join不支持动态类型作为关联键,且完全没必要用关联操作处理单表内的数组字段。

查询逻辑说明

  1. 过滤资源:筛选类型为Key Vault且公网访问已启用的资源。
  2. 提取IP规则数组:直接获取properties.networkAcls.ipRules动态数组。
  3. 拼接IP字符串:
    • 用array_length判断数组是否为空,为空则返回空字符串。
    • 用strcat_array将数组中每个元素的value字段(即IP地址)拼接成逗号分隔的字符串。
  4. 投影字段:输出Vault名称和拼接后的IP规则字符串。

内容的提问来源于stack exchange,提问作者user2954003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:16:01