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

使用AWS SES沙箱发邮件遇403权限错误,求助排查

AWS SES沙箱发送邮件403权限错误排查

问题背景

使用AWS SES沙箱版本结合Java V2 SDK发送邮件,已为IAM用户附加AmazonSESFullAccess权限,但调用ses:SendEmail时返回403错误:

User arn:aws:iam::XXXXXXXXX:user/iam-username is not authorized to perform ses:SendEmail on resource arn:aws:ses:region-id:XXXXXXXXX:identity/sender-email@domain.com (Service: Ses, Status Code: 403, Request ID: a7287c61-dca1-48b5-87c0-b3b0df00a35e)

已配置的IAM权限

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ses:*",
            "Resource": "*"
        }
    ]
}

Java代码实现

AwsCredentials credentials = AwsBasicCredentials.create("awsAccessKey", "awsSecretKey");
SesClient sesClient = SesClient.builder()
    .credentialsProvider(() -> credentials)
    .region(Region.of(region))
    .build();

Destination destination = Destination.builder()
    .toAddresses("verified-receiver@test.com")
    .build();

Content htmlContent = Content.builder().data("some html content").build();
Content subject = Content.builder().data("some subject").build();
Body body = Body.builder().html(htmlContent).build();
Message message = Message.builder().subject(subject).body(body).build();

SendEmailRequest request = SendEmailRequest.builder()
    .destination(destination)
    .message(message)
    .source("verified-sender@test.com")
    .build();

SendEmailResponse response = sesClient.sendEmail(request);

关键排查点

以下是导致该403错误的常见遗漏配置:

  • 凭证与IAM用户不匹配:代码中使用的awsAccessKey/awsSecretKey必须属于已附加AmazonSESFullAccess权限的IAM用户,避免误用其他无权限的凭证。
  • 区域不匹配:SES身份(发件邮箱/域名)的验证区域必须与代码中指定的region完全一致。例如,若发件邮箱在us-east-1验证,代码却使用us-west-2,会因资源ARN的区域字段不匹配触发权限检查失败。
  • IAM权限边界限制:若该IAM用户设置了Permission Boundary,需确认边界策略未禁止ses:SendEmail操作。权限边界会作为权限上限,即使附加了AmazonSESFullAccess,边界不允许的操作仍会被拒绝。
  • 组织SCP限制:如果你的AWS账号属于AWS Organization,需检查组织级别的Service Control Policy (SCP) 是否禁止了SES的SendEmail操作。SCP会限制账号内所有IAM实体的权限范围。
  • 发件人身份拼写错误:错误提示中的资源ARN指向sender-email@domain.com,需确认代码中source参数的邮箱地址(verified-sender@test.com)与该资源完全一致。拼写错误会导致权限检查针对错误的SES身份资源。
  • 沙箱身份验证状态:虽然这不是权限错误的直接原因,但需确保发件人和收件人邮箱均已在SES控制台完成验证(沙箱环境强制要求),避免后续出现发送失败问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:44:57