Amazon SES指定配置集时报sendRawEmail未授权错误,已赋SES全权限仍失败
问题排查与解决方案
- 优先使用IAM策略模拟工具定位问题
直接进入对应用户的IAM权限配置页,选择「模拟策略」功能,指定操作ses:SendRawEmail,资源填写报错提示的配置集ARN,系统会直接返回权限拦截的具体原因,能快速定位是哪条规则导致的权限不足。IAM权限评估逻辑中显式拒绝优先级高于所有允许规则,首先确认没有其他策略对该操作/资源做了显式拒绝。 - 检查权限边界配置
如果该IAM用户被配置了权限边界,即使用户自身被授予了ses:*全量权限,权限边界规则如果没有开放ses:SendRawEmail操作和对应配置集资源的访问权限,依然会触发权限报错,检查权限边界配置是否覆盖了SES配置集相关的允许规则。 - 校验区域一致性
SES配置集是区域级资源,确认你Laravel配置文件中填写的SES区域,和配置集实际创建的区域完全一致,跨区域调用时会识别不到对应配置集,也会返回权限类报错。 - 排查组织级服务控制策略(SCP)限制
如果你的AWS账号归属AWS Organization组织,检查组织层面配置的SCP规则是否限制了SES配置集的使用,SCP规则的限制会作用于组织下所有账号的IAM实体,优先级高于账号内的权限配置。 - 跨账号使用配置集需要额外添加发送授权
如果你当前使用的IAM账号和配置集所属的AWS账号不是同一个,需要在配置集所属账号的SES控制台「发送授权」菜单下,给当前IAM用户的ARN添加允许使用该配置集的规则。 - 临时测试定向权限规则
以上排查都无异常的话,可以临时替换原有全量SES权限为定向权限规则,测试是否能发送成功:
{ "Sid": "AllowSESSendWithConfigSet", "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": [ "arn:aws:ses:<替换为你的区域>:<替换为你的账号ID>:identity/*", "arn:aws:ses:<替换为你的区域>:<替换为你的账号ID>:configuration-set/<替换为你的配置集名称>" ] }
内容的提问来源于stack exchange,提问作者RedSquirrel Studio
相关产品推荐
相关产品推荐

