我在Ubuntu 16.04 LTS上使用AWS cli,我试图列出所有存储桶。在aws configure中,我输入了IAM用户访问密钥和IAM用户密钥。这个 IAM用户有权列出存储桶并可以在控制台中列出存储桶。但是使用AWS cli和这些键并运行命令 - aws s3 ls 它给了我这个错误。
调用ListBuckets操作时发生客户端错误(SignatureDoesNotMatch):我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。
我已经为这个特定的IAM用户创建了列出存储桶的策略。
我想执行进一步的同步操作,并使用此IAM用户凭据通过shell脚本对所有文件进行公共操作,并且不想使用root凭据。
答案 0 :(得分:7)
找到我的问题。我的环境变量中有旧的AWS密钥。如果您有名为
的环境变量AWS_SECRET_ACCESS_KEY
AWS_ACCESS_KEY_ID
awscli将使用这些值而不是通过~/.aws/credentials
提供的值。
尝试运行printenv | grep AWS
并验证未设置这些值。如果是这样,那么只需运行一个
unset AWS_SECRET_ACCESS_KEY
unset AWS_ACCESS_KEY_ID
你应该好好去。
答案 1 :(得分:2)
就我而言,这是由于错误的aws_secret_access_key
引起的。
要检查,请键入以下内容以打开文件〜/ .aws / credentials :
cat ~/.aws/credentials
内容应类似于以下内容:
[default]
aws_access_key_id = xxx
aws_secret_access_key = xx
查看aws_access_key_id
和aws_secret_access_key
是否与您的凭据匹配。如果没有,请编辑并保存更改。
p / s:如果您不记得自己的aws_secret_access_key
,请通过aws控制台->您的名字->我的安全证书来生成新的密钥和机密。
然后单击“创建访问密钥”:
请注意,一次只能有两个访问键。
答案 2 :(得分:1)
在我的情况下,我有加密但是在加密之前发送文件的大小。如果您收到此错误并且您的密码和密钥是正确的,则值得仔细检查您的md5,mimetype,大小和其他属性
答案 3 :(得分:1)
这意味着您的AWS安全凭证已过期。只需创建新凭据即可。
Create New Access Key
。记下访问密钥ID和秘密访问密钥aws configure
并输入新的凭据答案 4 :(得分:0)
只需检查正在运行的系统上的时间即可。确保它已更新
答案 5 :(得分:0)
问题出在AWS凭证上,我将秘密从excel文件复制到了txt文件,并且剥离了一些特殊字符。确保正确复制。
还尝试重新启动计算机,并确保未在环境变量中设置AWS,您可以使用printenv | grep 'AWS'
答案 6 :(得分:0)
即使机器时间与NT服务器不同步也可能发生。
sudo ntpdate ntp.ubuntu.com
帮助我解决了这个问题。
答案 7 :(得分:0)
请切换到root用户。
就我而言,我是从标准用户访问此命令aws s3 ls
并给出以下错误:
“列出了S3存储桶的AWS CLI使用IAM用户凭据给出了SignatureDoesNotMatch错误”
然后使用sudo su
命令切换到root用户,并尝试访问aws s3 ls
命令,其中列出了s3存储桶名称。
答案 8 :(得分:0)
对我来说,问题是我的secret_key中的/ 为了解决这个问题,将密钥粘贴到我PC上的.dat文件中 将其复制到服务器 pg服务器上的.dat文件,并在使用aws configure时复制了密钥
答案 9 :(得分:0)
使用此处所述的 --endpoint-url
选项修复它:https://github.com/aws/aws-cli/issues/4922
看起来这与我所在的 VM 与存储桶位于不同区域的事实有关。
答案 10 :(得分:0)
这里是 Boto3、Python 和 AWS 自动化的新手。
我收到错误
“调用 CreateBucket 操作时出现客户端错误 (SignatureDoesNotMatch):我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法。” 尝试以编程方式添加时一个 S3 存储桶到我的 AWS 账户。
我使用 Jupyter 作为我的 IDE,并花了很多时间试图解决这个问题。 我发现这与 .aws 中“配置”文件中输入的默认区域有关,出于某种原因,我的配置文件中的默认区域是“us-west-2”我尝试添加的存储桶位于 us-east-2。
我已经看到一些解决方案试图用环境变量来纠正这个问题,但我相信这个解决方案要简单得多。
答案 11 :(得分:0)
在导出 AWS_SECRET_ACCESS_KEY 时使用单引号 (') 而不是使用 qutoes ("),使用“aws s3 cp”命令为我解决了这个问题。
答案 12 :(得分:0)
就我而言,我在区域名称上有一些拼写错误。一旦修复,一切正常。
首先将区域名称设置为无..然后正确更改回来。
应该不错。
答案 13 :(得分:0)
我的情况不同,昨天我的新 Mac 中这些配置的键工作正常,但今天不起作用。我尝试与旧的 Windows 系统配置进行比较,两者看起来都一样。没看懂,我又从windows复制粘贴到mac,然后就正常了,好像是添加了一些不可见的字符。
答案 14 :(得分:-1)
此错误是由于aws s3访问密钥/密钥错误造成的。