gpt4 book ai didi

amazon-web-services - 签名已过期 : is now earlier than error : InvalidSignatureException

转载 作者:行者123 更新时间:2023-12-03 01:21:45 29 4
gpt4 key购买 nike

我正在尝试使用 AWS API Gateway 和 IAM 授权的一个小示例。 AWS API Gateway 生成以下端点:

https://xyz1234.execute-api.us-east-2.amazonaws.com/Users/users

使用 POST 操作且不带参数。

最初,我关闭了此 POST 方法的 IAM,并使用 Postman 验证了结果,它有效。然后,我创建了一个新的 IAM 用户并将 AmazonAPIGatewayInvokeFullAccess 策略附加到该用户,从而授予调用任何 API 的权限。为 POST 方法启用 IAM。

然后我去了 Postman - 并添加了 AccessKey、Secret Key 的授权、AWS 区域为 us-east-2 以及服务名称为 execute-api 并尝试执行请求,但我收到 InvalidSignatureException 错误,返回代码为 403。

正文包含以下消息:

Signature expired: 20170517T062414Z is now earlier than 20170517T062840Z (20170517T063340Z - 5 min.)" 

我错过了什么?

enter image description here

最佳答案

使用 AWS sigV4 签名的请求包含创建签名的时间戳。签名在创建后仅在短时间内有效。 (这限制了可以尝试重放攻击的时间。)

验证签名后,会将时间戳与当前时间进行比较。如果这表明签名不是最近创建的,则签名验证将失败并显示您提到的错误消息。

如果您在使用 WSL 的 Windows 上的 Docker 容器中启用此功能,那么通过运行 wsl -d docker-desktop -e/sbin/hwclock -s 可能有助于修复 WSL 时间 在 Powershell 中。您可以通过登录容器来预先验证情况是否如此在终端中输入 date 并将其与主机时间进行比较。

造成这种情况的一个常见原因是生成签名的主机上的本地时钟偏差超过几分钟。

关于amazon-web-services - 签名已过期 : is now earlier than error : InvalidSignatureException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44017410/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com