Skip to content

如何解决 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 请求已签名

有关详细信息,请参阅适用于 API 请求的 AWS 签名版本 4AWS 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.your-aws-region.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:AWS_REGION:AWS_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:your-aws-region:execute-api"

相关信息

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