我正在尝试通过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