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

AWS SES单账号验证域名后授权其他账号发信失败如何解决?

你的理解没有问题,AWS SES本身支持跨账号使用已验证域名发信,本次报错是配置遗漏导致,核心问题和修正方案如下:

核心问题定位

从报错信息可以直接看出问题根源:发信请求触发SES校验时,默认在发信账号1234567890101下查找my.name@domain.com的身份资源,而你并没有在该账号下验证过该域名/邮箱,因此直接返回权限拒绝。

具体修正步骤

1. 主账号(已验证SES域名的账号)侧配置校验

你仅定义了IAM策略文档,需确认已将该策略实际绑定到SES域名身份上,Terraform需补充如下资源定义:

resource "aws_ses_identity_policy" "domain_auth" {
  identity = aws_ses_domain_identity.this.domain
  name     = "cross-account-send-policy"
  policy   = data.aws_iam_policy_document.this.json
}

未绑定的情况下跨账号授权策略不会生效,这是高频遗漏点。

2. 发信账号侧配置调整

你当前给ses_user配置的IAM权限已经满足要求,无需调整,仅需要修改发信请求的逻辑:
发信时必须显式指定主账号下已验证域名的ARN作为SourceArn参数,告知SES去主账号校验权限,而非查找当前发信账号下的身份资源。
以Python SDK发信为例,请求示例如下:

import boto3
# 区域需和主账号验证域名的区域保持一致
ses = boto3.client('ses', region_name='eu-west-1')
response = ses.send_raw_email(
    Source='my.name@domain.com',
    Destinations=['recipient@example.com'],
    RawMessage={'Data': raw_email_content},
    # 必须添加该行,值为主账号已验证域名的ARN
    SourceArn='arn:aws:ses:eu-west-1:<替换为主账号ID>:identity/domain.com'
)

如果使用SMTP协议发信,需在邮件头中添加X-SES-SOURCE-ARN字段,字段值同上。
修改完成后重新测试即可正常发信。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:36:01