如何通过Azure Resource Graph查询定位指定Secret对应的Key Vault?
通过Secret名称查询对应的Key Vault名称方法
你提供的Resource Graph查询语句无法实现需求,它仅能列出所有Key Vault资源,并未关联Secret的相关信息。
要通过Secret名称查询对应的Key Vault名称,可以使用以下Resource Graph查询语句:
Resources | where type =~ 'microsoft.keyvault/vaults/secrets' | where name =~ 'APIKey' | project SecretName = name, KeyVaultName = split(id, '/')[8]
语句说明:
- 第一步筛选出所有类型为Key Vault Secret的资源;
- 第二步匹配名称为
APIKey的Secret(=~表示不区分大小写,若需严格区分可改用==); - 第三步通过拆分资源ID提取Key Vault名称——Azure资源ID格式固定为
/subscriptions/{订阅ID}/resourceGroups/{资源组名}/providers/Microsoft.KeyVault/vaults/{KeyVault名称}/secrets/{Secret名称},拆分后索引为8的部分即为目标Key Vault名称。
额外提示:
- 确保你的账号拥有
Key Vault Secrets Reader或更高权限,才能正常查询Secret资源; - 若需筛选特定环境的Key Vault(比如DEV/TEST),可在查询中添加条件,例如:
| where KeyVaultName contains 'DEV'。
内容的提问来源于stack exchange,提问作者Parth Sekar
相关产品推荐
相关产品推荐

