【发布时间】:2015-04-26 09:19:07
【问题描述】:
在使用我的 root 权限(访问密钥和密钥)配置后使用 s3cmd,每当我尝试使用 sync 或 get 从存储桶下载内容时,我都会收到这个奇怪的 root 帐户权限错误:
WARNING: Remote file S3Error: 403 (Forbidden):
所有者是我使用 IAM 控制台创建的另一个用户,但我期望根用户始终获得完全且不受限制的访问权限是否正确?
同样使用aws-cli 我得到一个未知错误
A client error (Unknown) occurred when calling the GetObject operation: Unknown
我还认为我必须添加一个存储桶策略以允许 root 访问(听起来很奇怪),作为第一步,我使用此策略添加了匿名访问
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::myBucket/*"
]
}
]
}
但错误仍然与上述相同。存储桶的所有者也是根用户(尝试访问的用户与所有者相同)。我在这里理解错了什么?如何恢复根用户对我自己的一位 IAM 用户创建的存储桶的访问权限?
【问题讨论】:
-
您是否检查过您的存储桶 ACL?此外,您是否尝试过不使用
aws-cli或s3cmd的简单HTTP/S GET?上述存储桶策略的匿名访问应允许 AWS 身份验证之外的匿名请求。我知道这不能回答问题,但它可以帮助确定问题所在。 -
谢谢。这可能是我之前(使用 Web 控制台)制作了一个存储桶的场景,但之后我使用
s3cmd上传了可能使用不同的凭据。现在尝试使用 root 凭据下载。s3cmd setacl --acl-grant=all:canonicalID --recursive s3://bucket不起作用。另外,我不知道“简单的 HTTP/S GET”是什么意思。 -
"doesn't work"表示使用
setacl后没有问题,提示“ACL已更新”,但错误依旧。
标签: amazon-web-services amazon-s3 s3cmd