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

如何解决AWS Amplify API调用时出现的403权限错误?

REST API 403错误排查与疑问解答

403错误可能原因及排查步骤

  • 检查已认证用户的IAM角色策略:确认Amplify生成的包含REST API访问权限的策略已正确附加到Cognito已认证用户角色上。可在IAM控制台的角色列表中找到amplify-<项目名>-<环境名>-authRole,查看权限策略是否包含允许访问该REST API的语句。
  • 验证API Gateway与Lambda的集成权限:确认API Gateway的执行角色拥有lambda:InvokeFunction权限,允许调用你的MyFunction。Amplify CLI通常会自动配置,但如果异常,可在IAM控制台查看API Gateway角色的权限。
  • 确认前端API调用配置:检查代码中API.post使用的API名称是否与Amplify配置中的一致,同时确保Auth模块已正确初始化,用户处于有效登录状态。

疑问解答

1. API.post是否应自动识别当前认证用户并添加必要请求头?

是的。只要你在配置REST API时选择了Cognito用户池或IAM作为授权方式,且用户已登录,Amplify的API.post会自动从Auth模块获取会话,在请求头中添加Authorization: Bearer <JWT>。如果没自动添加,检查:

  • API的授权方式配置是否正确
  • 前端代码中API名称是否与Amplify CLI生成的配置匹配
  • Auth模块初始化是否正常,Auth.currentSession()能否返回有效会话

2. amplify api CLI中的“read”“create”等权限对应哪些HTTP方法?

Amplify CLI中REST API的权限与HTTP方法的默认映射为:

  • create:对应POST、PUT方法
  • read:对应GET方法
  • update:对应PUT、PATCH方法
  • delete:对应DELETE方法
    配置时CLI会根据你选择的权限生成对应的IAM策略,限制用户只能通过指定HTTP方法访问API路径。

3. 将Auth.currentSession获取的JWT用于Postman时出现授权头格式错误?

Auth.currentSession().getIdToken().getJwtToken()获取的是纯JWT字符串,在Postman中需按以下格式设置授权头:

Authorization: Bearer <JWT字符串>
注意Bearer后必须加空格,不要给JWT加引号。如果仍报错,检查JWT是否过期(可通过jwt.io验证有效期),或是否复制时出现多余字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:27:45