如何获取AWS CloudTrail日志中IAM操作的用户ID(爱尔兰区域)
爱尔兰区域获取IAM操作用户ID的可行方案
针对你遇到的IAM API事件仅在us-east-1发布的问题,以下是几种适配你现有爱尔兰区域部署架构的解决方案:
方案1:跨区域EventBridge事件转发(推荐)
- 在us-east-1区域创建EventBridge规则:
- 事件模式配置为匹配目标IAM操作(以
CreateUser为例):{ "source": ["aws.iam"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventName": ["CreateUser"] } } - 目标选择爱尔兰区域的自定义事件总线:先在爱尔兰区域创建自定义事件总线,然后在us-east-1的规则中配置跨区域目标,同时给事件总线添加资源策略,允许us-east-1的EventBridge服务向其写入事件。
- 事件模式配置为匹配目标IAM操作(以
- 在爱尔兰区域创建EventBridge规则:
- 监听上述自定义事件总线的IAM操作事件。
- 目标设置为你现有的Lambda函数,函数可直接从事件JSON中提取
userIdentity.userId字段(即执行操作的用户ID),再完成Telegram推送逻辑。
方案2:us-east-1中转Lambda转发
- 在us-east-1区域部署轻量中转Lambda:
- 触发方式绑定EventBridge规则(匹配IAM目标操作)。
- 函数逻辑:从IAM事件中提取用户ID、操作名称、事件时间等核心数据,通过跨区域调用触发爱尔兰区域的现有Lambda函数。
- 爱尔兰区域的Lambda无需大幅修改,只需调整接收逻辑,直接处理中转Lambda传来的结构化数据即可。
方案3:基于CloudTrail S3日志触发(低实时性场景)
- 确保CloudTrail配置将所有区域的IAM事件日志存储至爱尔兰区域的S3桶。
- 在爱尔兰区域给现有Lambda添加S3触发:触发条件设置为S3桶的
ObjectCreated事件。 - 函数逻辑:当CloudTrail日志文件落地S3时,下载并解析文件,筛选出
CreateUser等目标操作,提取对应的用户ID后推送至Telegram。 - 注意:该方案存在几分钟的延迟,适合对实时性要求不高的场景。
通用注意事项
- 权限配置:跨区域操作需确保各服务权限打通,比如事件总线的资源策略、Lambda的跨区域调用权限等。
- 成本:上述方案的额外成本极低,EventBridge和Lambda的调用费用可忽略不计。
内容的提问来源于stack exchange,提问作者Twisted_sister
相关产品推荐
相关产品推荐

