You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为指定S3存储桶配置CloudWatch指标过滤规则

配置目标
  • 基于CloudWatch指标过滤器实现S3存储桶上传行为监控,当指定存储桶连续24小时无对象上传时自动发送告警通知
  • 不采用S3事件通知结合DynamoDB的替代方案,全程通过CloudWatch能力完成配置
当前问题

现有过滤器规则会扫描捕获所有存储桶的S3上传操作日志,无法限定仅统计单个目标存储桶的事件,当前使用的过滤规则如下:

{ ($.eventSource = s3.amazonaws.com) && (($.eventName = CopyObject) || ($.eventName = CompleteMultipartUpload) || ($.eventName = PutObject) || ($.eventName = PostObject)) }

对应捕获到的目标存储桶CloudTrail日志片段如下,可见存储桶名称存储在requestParameters嵌套字段下:

"eventTime": "2022-07-05T06:50:46Z",
"eventSource": "s3.amazonaws.com",
"eventName": "PutObject",
"awsRegion": "eu-west-1",
"sourceIPAddress": "cloudtrail.amazonaws.com",
"userAgent": "cloudtrail.amazonaws.com",
"requestParameters": {
    "bucketName": "my-test-s3-bucket",
    "x-amz-acl": "bucket-owner-full-control",
    "x-amz-server-side-encryption-context": 
}
调整方法

原有规则缺少对嵌套字段requestParameters.bucketName的精确匹配条件,直接在规则中追加该字段的判断即可,调整后的过滤规则如下(将my-test-s3-bucket替换为你实际需要监控的存储桶名称):

{ 
  ($.eventSource = s3.amazonaws.com) && 
  ($.requestParameters.bucketName = "my-test-s3-bucket") && 
  (
    ($.eventName = CopyObject) || 
    ($.eventName = CompleteMultipartUpload) || 
    ($.eventName = PutObject) || 
    ($.eventName = PostObject)
  ) 
}
配置校验与注意事项
  • CloudWatch指标过滤器匹配JSON嵌套字段时必须写全层级路径,直接写$.bucketName会因为字段路径不匹配导致规则不生效
  • 存储桶名称为精确字符串匹配,必须用双引号包裹,大小写与实际桶名完全一致
  • 规则保存前可使用CloudWatch控制台内置的过滤器测试功能,分别粘贴目标桶、其他桶的S3事件日志验证匹配结果,确认仅目标桶的上传事件会被命中
  • 后续创建告警规则时,选择该过滤器生成的自定义指标,设置告警条件为连续24小时窗口内指标累计值小于1,即可实现24小时无上传触发告警的需求

内容的提问来源于stack exchange,提问作者jarral rajput

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 10:18:05