请求协助编写AWS CloudWatch事件模式:检测S3桶公网访问创建/修改
正确的CloudWatch Events自定义事件模式(S3公网访问变更触发)
以下是针对你的需求的自定义事件模式,它会捕获所有可能导致S3桶公网访问状态变更的成功API操作:
{ "source": ["aws.s3"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["s3.amazonaws.com"], "eventName": [ "CreateBucket", "PutBucketPolicy", "PutBucketAcl", "PutPublicAccessBlock", "PutBucketOwnershipControls" ], "errorCode": ["Success", null] } }
关键说明:
- 覆盖核心操作:列出的5个API操作是最可能改变桶公网访问权限的动作,包括桶创建、策略/ACL修改、公网访问控制块调整、所有权控制变更
- 过滤成功请求:
errorCode字段确保只触发成功完成的操作,排除失败的API调用 - 匹配CloudTrail格式:
source和detail-type严格遵循CloudTrail事件的格式要求,这是之前可能遗漏的关键点
后续优化建议:
- 添加权限校验逻辑:上述模式仅捕获操作行为,无法直接判断操作是否真的开放了公网访问(比如设置
PutPublicAccessBlock为严格限制的情况)。建议将Lambda函数作为CloudWatch事件的目标,在Lambda中调用S3的getPublicAccessBlock、getBucketPolicy、getBucketAcl接口,校验桶的实际权限状态后再触发邮件通知 - 确认CloudTrail配置:检查CloudTrail是否已开启S3事件的完整记录,确保没有排除上述API操作;同时确认CloudTrail日志已正确流向CloudWatch Logs
- 邮件通知配置:创建SNS主题并订阅目标邮箱,将SNS主题设为CloudWatch事件(或Lambda)的目标,实现邮件推送
内容的提问来源于stack exchange,提问作者Naga pramukh
相关产品推荐
相关产品推荐

