如何配置EventBridge触发Lambda响应CloudTrail检测的所有事件
问题解决:让所有CloudTrail事件触发Lambda函数
为什么你的EventBridge规则无效?
没错,你之前的规则匹配逻辑错了。CloudTrail捕获的事件在EventBridge中,source字段对应的是实际执行操作的AWS服务(比如WAFv2操作对应的source是aws.wafv2),而不是aws.cloudtrail。aws.cloudtrail这个source仅对应CloudTrail自身的操作事件(比如创建CloudTrail跟踪、修改跟踪配置等),所以你之前的规则只会触发CloudTrail自身的操作,不会触发其他服务通过CloudTrail上报的事件。
配置方法:匹配所有CloudTrail转发的事件
要让Lambda响应所有CloudTrail检测到的事件,你需要修改EventBridge规则的事件模式,匹配CloudTrail发送到EventBridge的事件特征——这类事件的detail-type固定为AWS API Call via CloudTrail。
修改后的事件模式如下:
{ "detail-type": ["AWS API Call via CloudTrail"] }
前提检查
确保你的CloudTrail跟踪已经开启了向EventBridge发送事件的功能:
- 进入CloudTrail控制台,找到你的跟踪配置
- 确认"Send to EventBridge for all events"选项已勾选
- 如果是新建跟踪,在创建时需要开启这个选项
这样配置后,所有被CloudTrail捕获的API操作事件(包括WAF IP集修改、EC2实例操作、S3桶操作等)都会触发你的Lambda函数。
内容的提问来源于stack exchange,提问作者Sabo Boz
相关产品推荐
相关产品推荐

