如何故障排除 API Gateway REST API 端点 403“Missing Authentication Token”错误?

1 分钟阅读
0

当我尝试调用 Amazon API Gateway REST API 时,我收到 403“Missing Authentication Token”错误消息。

简述

API Gateway REST API 端点返回Missing Authentication Token错误,原因如下:

要故障排除 API Gateway 的其他 403 错误,请参阅如何排查 API Gateway 中的 HTTP 403 错误?

解决方案

确认 API Gateway 资源路径中是否存在已配置的操作和资源

按照使用 API Gateway 控制台创建操作中的说明进行操作。有关更多信息,请参阅设置 API 资源

**重要信息:**要使更改生效,您必须部署 API

对于将请求操作发送到根资源的具有代理资源集成的 API,请验证根资源下是否配置了操作。

确认 API Gateway 响应未被修改,或者后端集成未发送响应

确保未在 API 中修改网关响应。另外,请确保错误不是来自集成后端。查看 API Gateway 执行日志和后端日志

确认 IAM 身份验证开启时,API 请求已签名

有关更多信息,请参阅签署 AWS API 请求AWS API 请求签名要素

确认您向 REST API 端点发送了正确的 HTTP 操作请求

通过网络浏览器测试 REST API 端点,查看是否自动发送 GET HTTP 操作请求。

要测试 POST HTTP 操作请求,请使用不同的 HTTP 客户端。例如,在 Postman 网站上使用 Postman,或在 curl 网站上使用 curl

使用 POST HTTP 方法请求的 curl 命令示例

$ curl -X POST  <API URL> -d <request body>

发送带有 JSON 标头的请求示例

$ curl --location -X POST 'https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy' --header 'Content-Type: application/json' --data-raw '{"x":"y"}'

使用 AWS V4 签名身份验证发送 curl POST 请求的示例

$ curl -X POST "<ENDPOINT>" -d <data> --user <AWS_ACCESS_KEY>:<AWS_SECRET_KEY> --aws-sigv4 "aws:amz:<REGION>:<SERVICE>"
$ curl -X POST "https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy" -d '{"x":"y"}' --user ABCD:1234 --aws-sigv4 "aws:amz:us-east-1:execute-api"

相关信息

如何为 API Gateway REST API 激活 IAM 身份验证?