如何查找触发Lambda响应RDS自动DB快照的CloudTrail对应事件
RDS自动快照创建完成触发Lambda的事件匹配方案
你在CloudTrail中查询不到示例中的事件是正常的:你贴的JSON结构属于Amazon EventBridge的RDS服务通知事件,不属于CloudTrail记录的API调用审计事件范畴,二者是AWS两套独立的事件体系。
你可以选择以下两种方案实现需求:
方案1:使用EventBridge RDS事件(官方推荐,更稳定)
直接配置EventBridge规则匹配RDS自动快照创建完成的通知事件,不需要依赖CloudTrail,事件过滤规则如下:
{ "source": ["aws.rds"], "detail-type": ["RDS DB Snapshot Event"], "detail": { "EventCategories": ["creation"], "SourceType": ["SNAPSHOT"], "Message": ["Automated snapshot created"], "SourceIdentifier": [{ "prefix": "rds:" }] } }
过滤规则说明:
Message匹配Automated snapshot created确保只触发快照创建完成的事件,排除创建中的状态通知SourceIdentifier前缀匹配rds:是RDS自动快照的固定命名规则,可以和手动快照(用户自定义命名,无此前缀)做区分
将该EventBridge规则的目标设置为你的Lambda函数即可实现需求。
方案2:从CloudTrail查询对应事件(仅当你需要审计场景时使用)
如果你一定要从CloudTrail日志中过滤自动快照创建事件,需要匹配以下字段:
- 事件名
eventName固定为CreateDBSnapshot - 增加自动快照专属过滤条件,二选一即可:
userIdentity.principalId前缀为AIDAAWSRDS,说明调用方是RDS系统账号,而非手动操作的IAM身份requestParameters.snapshotType为automated(部分AWS区域的CloudTrail日志会返回该字段)
该方案的事件延迟会比EventBridge方案高,且过滤规则兼容性更差,非必要不建议使用。
内容的提问来源于stack exchange,提问作者Oli at cdcloudlogix.com
相关产品推荐
相关产品推荐

