亚马逊SP-API迁移卖家授权Step3返回Unauthorized错误求助
问题背景
我们在将长期运行的MWS应用迁移至SP-API时,沙箱环境开发已完成,正推进现有客户账号迁移。按官方MWS转SP-API迁移指南执行Step1、Step2均正常,但在Step3获取临时令牌环节,返回如下Unauthorized错误:
{ "errors": [ { "message": "Access to requested resource is denied.", "code": "Unauthorized", "details": "" } ] }
该问题在个人卖家账号及客户账号中均出现,已严格按照IAM权限配置文档创建角色与用户,且分别通过手动操作及官方提供的authorization-api-model执行Step3,均未解决。
排查与解决步骤
检查IAM角色的信任关系
确保IAM角色的信任策略正确配置了SP-API服务主体,允许其调用sts:AssumeRole。正确的信任策略示例:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sellingpartnerapi.amazon.com" }, "Action": "sts:AssumeRole" } ] }避免添加不必要的限制条件(如IP白名单、账号限制),除非有明确业务需求,否则会导致权限验证失败。
验证IAM用户的权限策略
确认用于发起AssumeRole请求的IAM用户,拥有针对目标SP-API角色的sts:AssumeRole权限。权限策略需明确指定目标角色的ARN,示例:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::你的AWS账号ID:role/你的SP-API角色名称" } ] }注意
Resource字段必须完全匹配角色的ARN,不能有拼写错误。核对Step3请求参数
调用临时令牌接口时,确认以下参数无误:role_arn:目标SP-API角色的完整ARN,无拼写错误role_session_name:符合AWS命名规范(长度2-64,无特殊字符)duration_seconds:在允许范围(默认900秒,最大3600秒)
同时确认请求使用的是对应环境(沙箱/生产)的正确API端点。
检查SP-API应用授权状态
在卖家平台的「第三方应用管理」中,确认你的SP-API应用已完成与目标卖家账号的授权绑定,且授权令牌未过期,应用拥有对应API的访问权限。确认AWS账号与SP-API应用的关联
确保创建IAM角色的AWS账号,与亚马逊开发者后台注册SP-API应用时关联的AWS账号为同一个。跨账号会导致权限验证不通过。区分沙箱与生产环境
若在生产环境迁移,不要误用沙箱的端点或凭证;沙箱环境同理。两者的IAM配置、API端点完全独立,不可混用。
内容的提问来源于stack exchange,提问作者DanScan

