如何为Google Cloud Storage存储桶IAM用户操作配置日志监控与全量告警
扩展GCS存储桶全量对象操作的Slack告警
1. 确认需要监控的GCS对象操作
先明确要覆盖的所有操作对应的methodName:
- 创建对象:
storage.objects.create - 删除对象:
storage.objects.delete - 下载/读取对象:
storage.objects.get - 更新对象元数据/内容:
storage.objects.update - 复制对象:
storage.objects.copy - 重写对象(跨存储类/区域):
storage.objects.rewrite
2. 检查并启用Data Access审计日志
因为下载(storage.objects.get)属于Data Access操作,默认不会生成审计日志,需要手动开启:
- 进入Google Cloud控制台的IAM -> 审计日志页面
- 找到「Cloud Storage」服务,勾选「数据访问」下的「读」、「写」、「修改」日志类别,保存设置
3. 更新现有告警的日志过滤器
根据你之前的实现方式,选择对应的修改步骤:
方式A:基于Cloud Monitoring告警策略
- 进入Cloud Monitoring -> 告警 -> 告警策略,找到你之前创建的GCS告警
- 编辑告警条件里的日志过滤器,把所有需要监控的
methodName用OR连接,示例过滤器如下:
resource.type="gcs_bucket" resource.labels.bucket_name="你的存储桶名称" protoPayload.methodName="storage.objects.create" OR protoPayload.methodName="storage.objects.delete" OR protoPayload.methodName="storage.objects.get" OR protoPayload.methodName="storage.objects.update" OR protoPayload.methodName="storage.objects.copy" OR protoPayload.methodName="storage.objects.rewrite"
- 保存更新,确保通知渠道仍指向你的Slack集成
方式B:基于Pub/Sub + Cloud Function
- 进入Pub/Sub -> 订阅,找到你之前绑定GCS审计日志的订阅
- 编辑订阅的「日志过滤器」,替换为上述包含全量操作的过滤器
- 无需修改Cloud Function代码,只要过滤器匹配到新的操作,就会自动触发Slack告警
4. 测试验证
- 执行一次对象下载、更新操作,检查Slack是否收到对应的告警通知
- 如果没收到,先检查审计日志是否生成(进入日志资源管理器,用上述过滤器查询是否有对应日志条目),再排查Pub/Sub或告警策略的配置
内容的提问来源于stack exchange,提问作者kingfateh khan
相关产品推荐
相关产品推荐

