如何防止他人冒用我的域名在Amazon SES中发送垃圾邮件
针对AWS SES域名被冒用发件的解决方案
1. 紧急止损操作
- 第一时间排查AWS账号权限:黑客可以调用你的ARN说明存在IAM凭证/角色泄露风险,立即轮换所有SES相关的IAM密钥,禁用废弃的IAM用户/角色,排查是否有IAM策略过度授权(比如SES发送权限的资源字段为
*、或开放了公共可访问的角色权限) - 临时调低SES发送阈值,避免垃圾邮件量过大导致你的SES服务被AWS封禁
2. 限制SES仅允许指定单个邮箱发件
可以通过IAM策略条件限制+域名身份校验实现仅允许office@myapp.com发件,具体配置如下:
IAM侧权限限制
给所有用于SES发件的IAM用户/角色绑定如下策略,强制校验发件地址:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ses:SendEmail", "ses:SendRawEmail" ], "Resource": "*", "Condition": { "StringEquals": { "ses:FromAddress": "office@myapp.com" } } } ] }
如果不需要整个域名发件,你也可以直接删除SES中已验证的myapp域名,仅保留单独验证的office@myapp.com邮箱,从根源上禁止同域名其他地址发件。
域名邮件协议配置(必须完成)
未验证地址可以冒用域名发件,核心原因是你没有配置邮件身份校验规则,需要配齐三个DNS记录:
- SPF记录:添加TXT记录,值为
v=spf1 include:amazonses.com -all,仅允许SES平台使用你的域名发件,其余来源全部默认拒绝 - DKIM记录:在SES控制台开启域名Easy DKIM,将生成的3条CNAME记录配置到域名解析,所有官方发出的邮件会携带DKIM签名,伪造邮件会被收件方识别拦截
- DMARC记录:添加TXT记录,值为
v=DMARC1; p=reject; sp=reject; pct=100,所有不符合SPF、DKIM校验的发件会被收件方直接拒收,不会触发AWS的垃圾邮件告警
3. 长效加固措施
- 开启SES配置集(Configuration Set),限制仅允许你业务常用的IP段、ECS实例、Lambda函数调用SES发件
- 开启CloudTrail审计,监控所有
ses:Send*类API调用,出现非预期发件地址、调用源时自动触发告警
内容的提问来源于stack exchange,提问作者ogl
相关产品推荐
相关产品推荐

