【问题标题】:AWS InvalidSignatureException, Signature expired when running from docker containerAWS InvalidSignatureException,从 docker 容器运行时签名已过期
【发布时间】:2022-02-11 19:17:43
【问题描述】:

我遇到了一个问题,我正在 docker 容器中开发一个程序,并且不知从何而来,我似乎遇到了无效签名的问题。当我尝试从 AWS Secrets Manager 检索资源时引发以下异常(我认为特定的 AWS 服务与问题无关):

botocore.exceptions.ClientError:发生错误 (InvalidSignatureException) 调用 GetSecretValue 操作时: 签名过期:20200505T192909Z 现在早于 20200506T151410Z(20200506T151910Z - 5 分钟)

【问题讨论】:

    标签: amazon-web-services docker time


    【解决方案1】:

    当客户端系统的时钟与 AWS 同步的时钟不同步时,会发生此异常。

    为了检查这个容器的时间,我在断点处暂停了我的程序并检查了当前时间。果然,和实际时间有偏差!

    首先要检查的是您本地系统的时间。如果它关闭,请重新同步并重试。 这应该可以解决问题。

    1. 这可以通过使用ntpd 在类unix 系统上完成。
    2. Windows 用户可以前往开始 -> 设置 -> 时间和语言 -> 日期和时间 -> 同步您的时钟

    Docker Desktop 的用户可能仍然会遇到同样的错误,尽管他们的本地机器的时间正在同步。

    虽然 docker 容器确实会与其主机同步时间,但重要的是要注意 Docker Desktop 为 docker 运行虚拟机。话虽如此,mac 或 windows 机器不是主机,VM 是。这是我遇到的问题。我的 Windows 桌面有一个同步且最新的日期/时间,但 Docker 桌面虚拟机是问题所在。 我能够通过重新启动 Docker Desktop 解决此问题。

    【讨论】:

    • 感谢您的回答 - 唯一有效的是重新启动 docker 桌面。
    猜你喜欢
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2014-12-31
    • 2020-09-07
    • 1970-01-01
    • 2019-10-09
    相关资源
    最近更新 更多