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

如何配置Lambda接收CloudWatch根账号登录事件日志而非仅告警信息推送至Slack

需求可行性结论

该需求完全可实现,你当前使用CloudWatch告警中转的链路天然无法传递原始CloudTrail事件字段,替换为EventBridge规则直接对接Lambda即可获取全量登录事件信息。

具体实现步骤
  • 第一步:保留你已配置的组织级CloudTrail,确保所有成员账号的ConsoleLogin事件都被正常采集到CloudTrail日志中
  • 第二步:在组织的管理账号(或CloudTrail日志聚合的委托管理员账号)中创建组织级EventBridge规则,规则匹配逻辑如下:
    {
      "source": ["aws.signin"],
      "detail-type": ["AWS Console Sign In via CloudTrail"],
      "detail": {
        "userIdentity": {
          "type": ["Root"]
        },
        "responseElements": {
          "ConsoleLogin": ["Success"]
        }
      }
    }
    
  • 第三步:将该EventBridge规则的目标设置为你现有发送Slack消息的Lambda,无需再经过SNS + CloudWatch告警的中转链路
  • 第四步:修改Lambda代码,直接从EventBridge传入的事件参数中提取你需要的字段,常用字段示例如下:
    • 登录账号ID:event['account']
    • 登录源IP:event['detail']['sourceIPAddress']
    • 登录时间:event['time']
    • 登录是否成功:event['detail']['responseElements']['ConsoleLogin']
    • 登录用户ARN:event['detail']['userIdentity']['arn']
  • 第五步:将提取的字段格式化后拼接为Slack消息发送即可
可选优化方案

如果不想改动现有SNS链路,也可以保持CloudWatch告警触发SNS的逻辑,在Lambda收到SNS的告警通知后,通过filter_log_events接口主动查询对应时间范围内CloudTrail日志中匹配Root登录的事件,拉取所需字段后再发送Slack消息,该方案改造成本更低,但实时性略逊于直接用EventBridge的方案。


内容的提问来源于stack exchange,提问作者I Am Robot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:36:08