如何获取使用Azure Key Vault的应用列表及查看密钥库关联应用
判断Azure Key Vault的使用情况及访问应用
从Key Vault本身查看访问应用
- 启用并分析诊断日志
先确保目标Key Vault启用了诊断日志,日志会完整记录所有访问请求。在Azure门户找到该Key Vault,进入「诊断设置」,配置将日志发送到Log Analytics工作区。之后在Log Analytics中运行以下Kusto查询,筛选出密钥/证书/密钥的读取请求,其中Identity字段会显示发起请求的应用服务/函数应用的托管标识或服务主体名称,直接对应到具体应用:AzureDiagnostics | where ResourceProvider == "MICROSOFT.KEYVAULT" | where OperationName in ("SecretGet", "KeyGet", "CertificateGet") | parse HttpRequestClientIpAddress with clientIp "," * | project TimeGenerated, OperationName, Identity, clientIp, ResourceId - 查看访问策略
Key Vault的「访问策略」页面会列出所有拥有访问权限的主体,包括应用的托管标识或服务主体。虽然这不能直接证明当前正在使用,但能缩小范围——不在访问策略里的应用肯定没有访问权限,在策略里的可结合日志进一步验证是否有实际访问行为。
其他验证方法
- 检查应用配置
直接查看应用服务/函数应用的「配置」页面,看应用设置中是否有@Microsoft.KeyVault(SecretUri=...)格式的引用;或者检查应用代码,确认是否有调用Key Vault SDK的逻辑。 - Azure Resource Graph批量查询
用以下Kusto查询批量找出所有配置了Key Vault引用的应用服务和函数应用,快速定位关联资源:resources | where type in ("microsoft.web/sites", "microsoft.web/sites/functions") | extend keyVaultReferences = parse_json(properties.appSettings) | mvexpand keyVaultReferences | where keyVaultReferences.value contains "@Microsoft.KeyVault" | project name, resourceGroup, keyVaultReferences.value - 谨慎停用测试
对疑似闲置的Key Vault,可先移除非关键应用的访问权限,或暂时设置为只读状态,观察是否有应用报错、告警,以此确认是否仍有活跃访问。
内容的提问来源于stack exchange,提问作者Melissa
相关产品推荐
相关产品推荐

