我想访问一个特定的存储桶(不是来自我的帐户)。该存储桶的作者有一个github网站here,他们可以访问数据。当我尝试aws s3 ls
时出现问题,我收到以下错误:
aws s3 \
--region eu-west-1 \
ls s3://ngi-igenomes/igenomes/Homo_sapiens/Ensembl/GRCh37/Annotation/Genes/
A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied
这有点奇怪,因为存储桶具有Requester Pays
策略意味着访问仅限于经过身份验证的请求,并且我有一个用户具有访问密钥,秘密访问密钥和我的帐户/ s3存储桶/等。 ..与我想要访问的桶位于同一区域(欧洲西部)。
所以,我正在寻求帮助,因为我不明白为什么我没有访问权限。 在此先感谢您的帮助!
答案 0 :(得分:0)
您的错误说明:A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied
这意味着您未被授予列出该存储桶的权限(或至少该存储桶中的路径)。
由于存储桶位于不同的AWS账户中,因此可以通过 Amazon S3存储桶策略向您授予这些权限的唯一方式。只有存储桶的所有者才能配置存储桶策略(或者更确切地说,该帐户中具有编辑存储桶策略所需权限的任何用户)。
(如果它位于同一帐户,则也可以使用 IAM用户政策授予访问权限。)
或者,存储桶拥有者可以创建具有必要权限的 IAM角色,并且可以为您的普通IAM用户配置信任关系。您将担任角色,然后访问存储桶。但是,这会破坏请求者支付能力,因为他们将被收取此类访问权。
答案 1 :(得分:0)
当天气桶有请求者支付政策并且您没有在请求中明确支付请求者支付头时,会发生这种情况