使用 AWS_IAM auth (AWS API GATEWAY) 将查询字符串传递给 http 端点

Passing querystring to http endpoint with AWS_IAM auth (AWS API GATEWAY)

我有一个 GET 方法,其中包含一些在 AWS Api 网关中定义的查询字符串,此方法受 AWS IAM 身份验证保护。

当我使用任何查询字符串向邮递员发出请求时,我收到此消息:“我们计算的请求签名与您提供的签名不匹配。请检查您的 AWS 秘密访问密钥和签名方法。. .

但是,如果我删除 IAM 身份验证,它会起作用。

我们已经看到有关 Postman 默认设置 Content-Type header 为 "x-www-form-urlencoded" 的报告。在某些情况下,这会阻止它生成正确的签名。尝试在 Postman 中显式设置 Content-Type header of "application/json"。

如果这不起作用,请 post 您的 Postman 请求的详细信息,但不要 post 您的 AWS 访问密钥或密钥的实际值。另外,不要 post 实际签名值。

感谢迈克的及时回复。 看来问题出在邮递员的 mac 版本上,我再次尝试使用 chrome 版本并且效果很好。 我意识到这两个版本使用相同的 AWS 访问密钥和密钥生成不同的签名。

我们还发现某些版本的 Postman 在更改请求的其他方面后不会重置授权 header。在这些情况下,您可以手动删除授权 header 以强制 Postman 重新创建它。