在 Ubuntu VM 上使用 AWS CLI Secretsmanager 命令出现“签名已过期”错误

问题描述 投票:0回答:1

我尝试使用 Secretsmanager CLI 命令检索 AWS 机密,但在该命令似乎挂起大约 5-6 分钟后收到此错误:

An error occurred (InvalidSignatureException) when calling the GetSecretValue operation: Signature expired: 20240208T204704Z is now earlier than 20240208T204804Z (20240208T205304Z - 5 min.) 

但是,我尝试过的所有其他 AWS CLI 命令在虚拟机上都可以正常工作,例如

aws sts get-caller-identity
aws s3 ls
。我能够在我的 Mac 上检索 VM 运行的秘密,并且我的 VM 和 Mac 都有相同的
~/.aws/config
~/.aws/credentials
文件。

我已经检查了我的虚拟机日期时间,它是正确的,时区也是正确的(

timedatectl
显示了我期望看到的内容),并且使用
sudo ntpdate ntp.ubuntu.com
强制进行时间同步。

我还尝试重新安装 AWS CLI,但没有成功(版本 2.15.18)

关于为什么此命令在我的虚拟机上不起作用的任何想法?

amazon-web-services aws-cli aws-secrets-manager
1个回答
0
投票

确保 AWS CLI 使用正确的签名版本来发出请求。某些 AWS 服务(包括 Secrets Manager)需要签名版本 4 进行身份验证。您可以检查 AWS CLI 配置来验证签名版本

aws 配置获取default.signature_version

如果输出不是v4,您可以显式设置:

aws 配置设置default.signature_version v4

我也面临这个问题,我已经通过配置default.signature_version v4解决了这个问题

© www.soinside.com 2019 - 2024. All rights reserved.