Piy*_*ore 8 amazon-s3 amazon-web-services amazon-iam aws-cli
我在Ubuntu 16.04 LTS上使用AWS cli,我试图列出所有桶.在aws configure中,我输入了IAM用户访问密钥和IAM用户密钥.这个IAM用户有权列出存储桶并可以在控制台中列出存储桶.但是使用带有这些密钥的AWS cli并运行命令 - aws s3 ls 它给了我这个错误.
调用ListBuckets操作时发生客户端错误(SignatureDoesNotMatch):我们计算的请求签名与您提供的签名不匹配.检查您的密钥和签名方法.
我已经创建了一个策略来列出这个特定IAM用户的存储桶.
我想执行进一步的同步操作,并使用此IAM用户凭据通过shell脚本使所有文件进行公共操作,并且不想使用root凭据.
找到了我的问题.我的环境变量中有旧的AWS密钥.如果您有名为的环境变量
AWS_SECRET_ACCESS_KEY
AWS_ACCESS_KEY_ID
Run Code Online (Sandbox Code Playgroud)
awscli将使用这些值而不是通过提供的值~/.aws/credentials.
尝试运行printenv | grep AWS并验证是否未设置这些值.如果是这样,那么就跑一个
unset AWS_SECRET_ACCESS_KEY
unset AWS_ACCESS_KEY_ID
Run Code Online (Sandbox Code Playgroud)
你应该好好去.
就我而言,这是由于不正确的aws_secret_access_key.
要检查,请键入以下命令打开文件~/.aws/credentials:
cat ~/.aws/credentials
Run Code Online (Sandbox Code Playgroud)
内容应如下所示:
[default]
aws_access_key_id = xxx
aws_secret_access_key = xx
Run Code Online (Sandbox Code Playgroud)
查看aws_access_key_id& 是否aws_secret_access_key与您的凭据匹配。如果没有,请编辑并保存更改。
p/s:如果您不记得您的aws_secret_access_key,请通过转到 aws 控制台 --> 您的姓名 --> 我的安全凭证来生成新的密钥和秘密。
然后单击“创建访问密钥”:
请注意,您一次只能拥有两个访问密钥。
小智 6
这意味着您的 AWS 安全凭证已过期。只需创建新凭证即可。
Create New Access Key。记下访问密钥 ID 和秘密访问密钥aws configure并输入新凭据| 归档时间: |
|
| 查看次数: |
16701 次 |
| 最近记录: |