我有一台新电脑,我正在尝试设置我的AWS CLI环境,以便运行我创建的管理控制台。
这是我正在运行的代码:
def create_bucket(bucket_args)
AWS_S3 = Aws::S3::Client.new(signature_version: 'v4')
AWS_S3.create_bucket(bucket_args)
end
提出此错误:
Aws::S3::Errors::SignatureDoesNotMatch - The request signature we calculated does not match the signature you provided. Check your key and signing method.:
这在我的其他计算机上运行正常,我无法访问。我记得在另一台计算机上调试了同样的错误,我想我已经通过将signature_version = s3v4
添加到我的~/.aws/config
文件中来解决了这个问题。但是这个修复程序不适用于我的新计算机,我不知道为什么。
提供更多背景信息:我正在使用aws-sdk (2.5.5)
和这些aws
cli规范:aws-cli/1.11.2 Python/2.7.12 Linux/4.4.0-38-generic botocore/1.4.60
答案 0 :(得分:0)
在这种情况下,问题是我的aws凭据(在~/.aws/credentials
中) - 特别是我的秘密令牌 - 无效。
原作中有一个斜线:
XX / xxxxxxxxxxxxxxxxxxxxxxxxxx
我起初并没有注意到,所以当我双击令牌来选择单词时,它并没有包含前三个字符。然后我在运行aws configure
时将其粘贴到终端中。
要解决此问题,我找到了正确的原始秘密加密令牌,并在~/.aws/credentials
中设置了正确的值。