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

特定机器操作指定S3桶时AWS CLI因Signature Version4报错求助

解决AWS S3删除对象时的Signature Version 4报错问题

我来帮你搞定这个问题!这个报错的核心原因很明确:us-east-2(俄亥俄区域)的S3桶强制要求使用Signature Version 4签名协议,而你这台特定机器上的AWS CLI要么没正确指定区域,要么默认用了旧的Signature Version 2签名,导致请求被拒绝。

下面是几个可行的解决办法,按优先级推荐:

1. 修改全局AWS配置文件(永久解决)

这是最稳妥的方式,一劳永逸。

  • 打开你的AWS配置文件:
    • Linux/macOS用户:~/.aws/config
    • Windows用户:C:\Users\<你的用户名>\.aws\config
  • 在文件里添加或修改对应的配置段,确保明确指定区域和签名版本:
    [default]
    region = us-east-2
    signature_version = s3v4
    
    如果你用了自定义的profile,就把[default]换成[profile 你的profile名称]。

2. 在命令中直接指定签名版本(临时应急)

如果不想修改全局配置,每次执行命令时加上--signature-version s3v4参数就行:

aws s3 rm s3://BUCKET_NAME --region us-east-2 --recursive --signature-version s3v4
aws s3 cp ./ s3://BUCKET_NAME/ --region us-east-2 --recursive --signature-version s3v4

3. 更新AWS CLI到最新版本

旧版本的AWS CLI可能对Signature Version 4的支持不完善,先检查当前版本:

aws --version

如果版本比较老,建议更新:

  • 用pip安装的用户:pip install --upgrade awscli
  • 其他操作系统用户可以按照对应方式更新(比如Linux用包管理器,Windows用官方安装程序)

为什么只有这台机器出问题?大概率是其他机器的AWS配置已经正确设置了区域和签名版本,而这台机器的配置要么区域没对准,要么签名协议还是旧的,才会触发这个报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:19:40