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

AWS Lambda本地调用正常 生产环境返回403错误如何解决?

AWS Lambda SAM本地运行正常线上返回403错误排查指南

你收到的是axios发起请求后服务端返回403状态码抛出的通用错误,错误详情如下:

{
  "errorType": "Error",
  "errorMessage": "Error: Request failed with status code 403",
  "trace": [
    "Error: Error: Request failed with status code 403",
    "    at Runtime.<anonymous> (/var/task/app.js:2:1014144)",
    "    at Generator.throw (<anonymous>)",
    "    at n (/var/task/app.js:2:1013200)",
    "    at processTicksAndRejections (internal/process/task_queues.js:95:5)"
  ]
}

403属于权限拒绝类错误,本地SAM调用正常但线上部署失败,是本地运行环境和AWS Lambda生产环境的配置差异导致的,常见原因如下:

  • Lambda执行角色权限不足
    本地SAM调用时默认使用你本地AWS CLI配置的用户身份权限,该身份一般有对应资源的访问权限。部署到线上后Lambda使用单独配置的执行角色,若该角色未添加目标资源的访问权限策略,请求AWS内部服务时就会返回403。
    排查方式:检查Lambda执行角色的IAM策略,确认已添加对应资源的允许访问动作。
  • 网络访问限制
    若Lambda部署在VPC内,未配置NAT网关、公有子网出站规则,或VPC安全组、网络ACL禁止了到目标服务的出站访问,会导致请求被拦截返回403。
    若请求的是外部第三方服务,确认目标服务是否封禁了Lambda部署区域的AWS公网IP段:本地调用时使用你本地公网IP,不在封禁列表内,线上Lambda的出口IP在封禁列表中就会触发403。
  • 身份凭证配置差异
    本地运行时你可能在本地环境变量中配置了正确的API密钥、访问Token等身份凭证,但部署时未将对应凭证同步配置到Lambda的环境变量中,导致请求携带的凭证无效,被服务端返回403。
    若请求AWS服务时使用了SigV4签名,本地调用时axios自动使用本地CLI的凭证完成签名,线上未适配Lambda运行时的凭证获取逻辑,也会触发403。
  • 目标服务访问控制策略限制
    目标服务(如API Gateway)若配置了资源策略、WAF规则,仅放行你本地公网IP,未允许Lambda所在区域的IP段访问,或请求缺少目标服务要求的特定头信息、参数,也会返回403。

快速排查方法

在axios的错误捕获逻辑中添加完整的请求URL、请求头、响应头打印,部署后通过CloudWatch Logs查看线上请求的完整上下文,即可快速定位403的返回来源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:18:04