如何记录GuestAssignment合规状态并导出为CSV,获取VM细粒度合规信息
获取Azure Guest Configuration单VM细粒度合规记录并导出CSV
1. 配置Guest Configuration日志流向Log Analytics Workspace
首先需要确保Guest Configuration的细粒度合规日志被收集到你的Log Analytics Workspace(LAW):
- 登录Azure门户,进入Guest Configuration服务,切换到诊断设置标签页
- 点击添加诊断设置,设置名称后,勾选
GuestConfigurationPolicyAudit和GuestConfigurationPolicyCompliance两个日志类别 - 目标选择你的Log Analytics Workspace,保存设置即可开始日志收集
也可以用Azure CLI快速配置:
az monitor diagnostic-settings create --name "GuestConfigToLAW" \ --resource "/subscriptions/<你的订阅ID>/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments" \ --logs '[{"category": "GuestConfigurationPolicyAudit", "enabled": true}, {"category": "GuestConfigurationPolicyCompliance", "enabled": true}]' \ --workspace "<你的LAW资源ID>"
2. 在Log Analytics中查询细粒度合规数据
进入你的Log Analytics Workspace,打开日志页面,使用以下Kusto查询语句获取单VM维度的每个合规项状态:
GuestConfigurationPolicyCompliance | where TimeGenerated > ago(7d) // 根据审计需求调整时间范围 | project 时间戳=TimeGenerated, VM名称=Computer, 合规分配名称=AssignmentName, 合规状态=ComplianceStatus, VM资源ID=ResourceId, 策略集名称=PolicySetDefinitionName, 合规项名称=PolicyDefinitionName | sort by 时间戳 desc
这个查询会返回每个VM对应的所有合规项的详细状态,替代策略分配仅返回的整体YES/NO结果。
3. 导出结果为CSV用于审计
查询执行完成后,点击页面顶部的导出按钮,选择CSV格式,即可将细粒度合规数据下载到本地,直接用于审计需求。
可选:用PowerShell批量导出
如果需要自动化或批量导出,可以使用Azure PowerShell模块执行查询并导出:
# 替换为你的LAW工作区ID $workspaceId = "<你的Log Analytics Workspace ID>" # 自定义查询语句 $query = @" GuestConfigurationPolicyCompliance | where TimeGenerated > ago(7d) | project 时间戳=TimeGenerated, VM名称=Computer, 合规状态=ComplianceStatus, 合规项名称=PolicyDefinitionName "@ # 执行查询并导出CSV $results = Invoke-AzOperationalInsightsQuery -WorkspaceId $workspaceId -Query $query $results.Results | Export-Csv -Path "GuestConfig细粒度合规报告.csv" -NoTypeInformation -Encoding UTF8
内容的提问来源于stack exchange,提问作者Sonny
相关产品推荐
相关产品推荐

