AWS无法验证提供的访问凭证.仅在特定区域进行验证



我正在尝试通过Linux AWS CLI执行一些操作。我的凭证文件是100%正确的。

用户具有EC2Fullaccess和Amdinistrative(最高等级(权限。我能够执行所有命令。

问题在于,以下区域会产生验证错误,休息区正常工作:

  • 俄亥俄州
  • 中央
  • 法兰克福
  • 首尔
  • 伦敦。

这些区域都可以通过Web界面可用于我的帐户,并且aws ec2 describe-regions也打印所有区域。

例如,通过指定区域中的Web界面创建实例也可以正常工作。

我用来访问AWS CLI的Linux Box的日期设置为硬件时钟,只有时钟格式差异。硬件时钟为12,而日期命令以24格式显示。

-------------------------------------------------------------------------------------------------

我刚刚发现问题是签名4。这是问题:

" signatureversion":[" 2"(签名版本2不支持 最初在2014年或更晚上进行服务的地区 目前包括AP-Northeast-2和Eu-Central-1以及中国。 所有区域都支持签名版本4和较新的区域 支持V4。 http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html "

但是如何仅通过CLI使用SignatureVersion 4来要求我的请求?

尝试更新到最新版本的AWS CLI。您已安装的AWS CLI可能无法处理V4签名。

根据文档:

对于所有AWS区域,AWS SDK默认使用签名版本4 认证请求。使用之前发布的AWS SDK时 2016年5月,您可能需要要求签名版本4

检查您当前的CLI版本:aws --version