Postman请求CloudFront返回403错误但浏览器正常访问,如何适配AWS API Gateway
问题原因
- 上层CloudFront拦截请求:你收到的403错误由CloudFront直接生成,请求根本没有透传到后端的AWS API Gateway。绝大多数这类场景是CloudFront关联的WAF规则拦截了Postman默认的请求特征:Postman默认发送的
User-Agent请求头包含Postman标识,很多业务的WAF规则会直接拦截非浏览器UA的请求,而浏览器的UA符合放行规则,所以浏览器访问正常。 - POST请求透传验证:你修改为POST请求后拿到的
{"message":"Missing Authentication Token"}是AWS API Gateway的标准返回,说明POST请求绕过了CloudFront的拦截规则(也有可能WAF只拦截了GET方法的非浏览器UA请求),请求到达了API Gateway层,只是对应资源路径没有配置POST方法,所以返回方法不匹配的通用报错。 - 少部分场景是CloudFront配置了请求头白名单,Postman默认请求缺少浏览器默认携带的
Accept、Accept-Language等字段,触发拦截规则。
AWS API Gateway场景Postman请求适配方案
- 模拟浏览器请求特征:首先修改Postman的
User-Agent请求头,替换为你本地浏览器的UA值,可在浏览器控制台执行navigator.userAgent直接获取。同时参考浏览器发起对应GET请求的请求头列表,在Postman的Headers栏补充Accept、Accept-Encoding、Accept-Language等字段,和浏览器请求保持一致。 - 配置API Gateway鉴权参数:如果API配置了权限校验,需要对应配置鉴权信息:
- 若使用API Key鉴权:在Headers中新增
x-api-key字段,填入分配的API密钥 - 若使用IAM身份认证:在Postman的Authorization标签选择「AWS Signature」,填入对应AccessKey、SecretKey、AWS区域,服务名固定填写
execute-api - 若使用自定义JWT/OAuth鉴权:在Authorization标签选择「Bearer Token」,填入有效令牌
- 若使用API Key鉴权:在Headers中新增
- 排除IP/频率拦截:如果以上操作仍返回403,检查CloudFront WAF的IP黑名单、请求频率限制规则,确认Postman所在设备的出口IP未被拦截。
内容的提问来源于stack exchange,提问作者lowcrawler
相关产品推荐
相关产品推荐

