如何检测GCP审计日志是否被停用并设置告警?
检测GCP审计日志停用的GCP端告警方案
核心逻辑
GCP的组织级审计日志会记录所有修改审计日志配置的操作——哪怕某个服务的审计日志被停用,组织级审计日志本身默认是启用状态,而且普通权限根本无法修改(仅超级管理员权限可操作),所以咱们可以基于这个日志来配置告警。
具体操作步骤
1. 确认组织级审计日志状态
先确保你的GCP组织已启用所有必要的审计日志类别,尤其是Data Access和Admin Activity,这两类会完整记录所有修改日志配置的操作。
2. 编写日志查询过滤器
在GCP日志资源管理器中,使用以下过滤器定位审计日志被停用的操作:
resource.type="project" (protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateSink" OR protoPayload.methodName="google.logging.v2.ConfigServiceV2.DeleteSink" OR protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucketConfig" OR protoPayload.methodName="google.cloud.resourcemanager.v3.Projects.Update") AND protoPayload.request.loggingConfig.enableLogging=false
简单说明:
UpdateSink/DeleteSink:对应修改或删除导出到SIEM的日志接收器操作UpdateBucketConfig:修改日志存储桶配置(可能涉及停用日志存储)Projects.Update+enableLogging=false:直接停用项目级审计日志的操作
3. 创建基于日志的告警
- 进入GCP的告警策略页面,选择“基于日志的告警”
- 导入上述过滤器,设置触发条件(比如“只要有匹配的日志条目就触发告警”)
- 配置通知渠道(邮件、Slack、Webhook均可),确保管理员能及时收到告警通知
4. 权限加固(额外补充)
- 严格限制修改审计日志配置的用户权限,仅授予超级管理员或指定运维角色
- 给组织级审计日志设置不可修改的权限,防止被恶意停用
替代方案:使用监控指标告警
如果日志查询方式不够灵活,还可以通过监控指标间接检测:
- 监控
logging.googleapis.com/sink/dropped_entries_count指标,当该数值突然上升时触发告警 - 监控
logging.googleapis.com/log_entry_count指标,为特定服务的日志量设置阈值,当日志量低于阈值时触发告警
注意事项
- 组织级审计日志是核心,必须确保其持续启用,所有修改操作都依赖它记录
- 多项目环境下,建议在组织级别统一配置告警,覆盖所有子项目
- 务必测试告警效果:手动修改测试项目的审计日志配置,验证告警是否正常触发
内容的提问来源于stack exchange,提问作者IsNotMyIp
相关产品推荐
相关产品推荐

