You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行AWS CLI命令遇SignatureDoesNotMatch签名过期错误求解决方案

AWS CLI SignatureDoesNotMatch 错误排查方案

错误信息

pierre@HAL9000:~# aws sts get-caller-identity

An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: Signature expired: 20230822T072529Z is now earlier than 20230822T193257Z (20230822T194757Z - 15 min.)

已确认信息

  • 已更新至最新AWS CLI版本
  • ~/.aws/credentials和~/.aws/config内密钥正确,同配置在其他机器可正常运行
  • 查阅过AWS签名V4官方排障文档未解决

排查思路与解决方案

1. 强制同步系统UTC时间

AWS签名验证要求本地时间与UTC时间偏差不超过15分钟,这是此类错误最常见原因:

  • 查看当前UTC时间:
    date -u
    
  • 对比实际UTC时间,偏差超15分钟则同步:
    • systemd系统(Ubuntu 16.04+/CentOS 7+):
      sudo timedatectl set-ntp true
      
    • 传统sysvinit系统:
      sudo ntpdate pool.ntp.org
      

2. 排除代理/网络中间件干扰

代理、VPN或防火墙可能篡改请求时间戳:

  • 临时关闭代理重试:
    unset HTTP_PROXY HTTPS_PROXY
    aws sts get-caller-identity
    
  • 检查网络设备是否有修改Date/X-Amz-Date请求头的规则

3. 清理冲突的AWS环境变量

环境变量可能覆盖本地配置文件:

  • 列出所有AWS相关变量:
    env | grep AWS_
    
  • 清除不符的变量:
    unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
    

4. 修复凭证文件权限

AWS CLI要求凭证文件权限严格为600:

  • 检查权限:
    ls -l ~/.aws/
    
  • 修改权限:
    chmod 600 ~/.aws/credentials ~/.aws/config
    

5. 显式指定配置文件测试

排除配置文件读取异常:

aws sts get-caller-identity --profile <你的配置文件名>

6. 强制使用UTC时区执行命令

时区配置错误可能导致时间戳异常:

TZ=UTC aws sts get-caller-identity

内容的提问来源于stack exchange,提问作者Pierre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 21:47:04