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

使用AWS_IAM授权的Amplify REST API请求返回403状态码问题排查

可能的配置缺失及解决方案
  • Amplify API 授权类型未显式指定AWS_IAM
    即使身份池配置正确,也需要在Amplify的API配置或调用时指定授权类型为AWS_IAM,否则不会使用身份池凭证签名请求。可以在调用时补充参数:

    API.get("MyApiName", "/resource", {
      headers: {},
      authorizationType: 'AWS_IAM'
    })
    

    或者在初始化Amplify的API配置项中,对应API的配置下添加authorizationType: 'AWS_IAM'。

  • API Gateway对应方法的授权配置错误
    进入API Gateway控制台,检查你调用的资源+HTTP方法的「授权」设置,确认已选择AWS_IAM,而不是NONE、Cognito用户池授权器等其他选项。修改配置后必须重新部署API到对应阶段才会生效。

  • IAM权限的资源ARN配置错误
    检查Cognito已认证角色的execute-api权限策略,资源ARN格式必须完全匹配你调用的API,正确格式为:
    arn:aws:execute-api:<区域>:<AWS账户ID>:<API ID>/<部署阶段>/<HTTP方法>/<资源路径>
    常见错误包括漏写部署阶段、HTTP方法与实际调用不匹配、资源路径拼写错误。

  • 未部署API Gateway最新配置
    所有API Gateway的配置修改(包括授权设置、路径修改、集成调整)都需要手动部署到对应阶段才会生效,修改后未部署会导致旧配置仍然生效,返回403。

  • 使用了未认证身份调用
    如果你开启了Cognito身份池的未认证访问,且当前用户未登录,Amplify会默认使用未认证角色的凭证发起请求。需要确认要么给未认证角色也配置对应execute-api权限,要么调用API前先确认用户已处于登录状态,可通过Auth.currentAuthenticatedUser()验证登录状态。

  • API Gateway资源策略或WAF拦截
    检查API Gateway的资源策略,确认没有限制你当前请求的来源IP、身份ARN等;如果配置了WAF,检查WAF日志是否命中了拦截规则,导致请求被拒绝返回403。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:51:01