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

如何查看AWS SES所有发送邮件的历史、内容并溯源发送者?

AWS SES恶意发件排查与日志留存方案

一、快速排查历史发件记录与溯源

1. 多区域批量获取发送历史

用AWS CLI批量遍历所有SES可用区域,拉取最近7天的发送统计与明细:

for region in $(aws ec2 describe-regions --query "Regions[].RegionName" --output text); do
  echo "=== 区域: $region ==="
  aws ses get-send-statistics --region $region
  aws ses list-sent-emails --start-time $(date -d "-7 days" +%Y-%m-%dT%H:%M:%SZ) --region $region
done

该命令会输出每个区域的发送统计(含退信、垃圾邮件标记数)和具体邮件列表,可快速定位异常区域。

2. 溯源发送者身份

  • 从list-sent-emails结果里提取Source字段(发件邮箱),检查是否为未授权的域名/邮箱;
  • 结合AWS CloudTrail日志,筛选ses:SendEmail或ses:SendRawEmail动作,查看调用者的IAM角色/用户ARN:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=SendEmail --start-time $(date -d "-7 days" +%Y-%m-%dT%H:%M:%SZ)

如果是临时凭证调用,查看userIdentity.sessionContext.sessionIssuer字段找到对应的角色,进一步排查角色的权限边界和信任关系。

3. 获取邮件内容

如果之前配置了SES接收规则集将发送的邮件归档到S3,直接到对应S3桶按时间范围检索;若未开启,可临时创建配置集并绑定S3存储,后续发送的邮件会自动归档。

二、长期留存所有SES邮件与操作日志

1. 全局配置邮件归档

创建跨区域生效的SES配置集,开启S3存储或CloudWatch日志:

  • 新建配置集,添加"S3存储"目的地,选择加密的S3桶,设置前缀按region/{YYYY}/{MM}/{DD}/分类;
  • 给所有已验证的发件域名/邮箱绑定该配置集,确保所有发送的邮件都被归档。

2. 锁定发件权限

  • 用IAM策略限制ses:SendEmail/ses:SendRawEmail动作仅允许指定角色/用户调用:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": ["ses:SendEmail", "ses:SendRawEmail"],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalARN": ["arn:aws:iam::123456789012:user/authorized-ses-user"]
        }
      }
    }
  ]
}
  • 关闭SES的"开放发件"功能,仅允许已验证的域名/邮箱发送邮件。

三、简化排查技巧

  • 优先查CloudTrail异常调用:直接搜索最近7天的SES发送动作,快速定位陌生IAM实体的调用记录;
  • 清理未授权验证项:删除SES中所有未授权的发件域名/邮箱,切断滥用入口;
  • 设置发送量告警:在CloudWatch创建告警,当发送量超过阈值(如100封/小时)时立即通知;
  • 排查EC2实例安全:若SES调用来自EC2实例,检查实例是否存在可疑进程、未授权SSH登录等入侵痕迹。

内容的提问来源于stack exchange,提问作者MissingSemicolon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:30:55