【问题标题】:S3 List all subfolders of a bucket produces AccessDenied , even though the bucket is PublicS3 列出存储桶的所有子文件夹会产生 AccessDenied ,即使存储桶是公共的
【发布时间】:2021-03-03 11:36:21
【问题描述】:

考虑 S3 中的以下策略:

{
    "Version": "2012-10-17",
    "Id": "AxelPolly12424242",
    "Statement": [
        {
            "Sid": "Stmt242554354",
            "Effect": "Allow",
            "Principal": "*",
            "Action": ["s3:ListBucket"],
            "Resource": "arn:aws:s3:::mycoolbucketname/*",
            "Condition":{"StringEquals":{"s3:prefix":["","examples"]}}
        }
    ]
}

当我尝试点击我的存储桶名称https://mycoolbucketname.s3-us-east-2.amazonaws.com/examples

我们得到:

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>KJLFSDHJJKGDFJKLGJDFKLGJLDF</RequestId>
    <HostId>GLKSFDNGJKLFDJGKLDFJGKLFDJGFDGEOT89GJROIGIKDSFSDJSD</HostId>
</Error>

这个政策有什么问题,我们如何列出存储桶的所有子文件夹,当我们也取消选中时 Block public access (bucket settings) 在权限选项卡下。

【问题讨论】:

  • 请说明您希望允许人们做什么。 “打我的桶”是什么意思?您是要允许人们下载 examples 目录中的任何内容(如果他们知道 URL),还是要允许他们列出这些内容?这是两个非常不同的要求。此外,您是否希望允许人们通过 Web 浏览器 URL 或 AWS CLI(或其他方式)执行此操作?

标签: amazon-web-services amazon-s3 bucket


【解决方案1】:

s3:prefix 适用于桶资源,而不是对象。所以而不是:

"Resource": "arn:aws:s3:::mycoolbucketname/*",

你应该有:

"Resource": "arn:aws:s3:::mycoolbucketname",

【讨论】:

  • 但是现在当我尝试访问我的文件时,文件夹:https://mycoolbucketname.s3-us-east-2.amazonaws.com/examples/ 我得到:&lt;Code&gt;AccessDenied&lt;/Code&gt;,并且在输入(末尾没有斜线)https://mycoolbucketname.s3-us-east-2.amazonaws.com/examples 时,我得到:@987654327 @
  • @JAN 你能用想要列出的对象键的例子来更新你的问题吗?
  • 当然,我想在浏览器中列出文件并下载我想要选择的任何内容,但现在它甚至不显示文件
  • @JAN 对不起。我不确定你想在“浏览器”中实现什么。该策略是正确的,并且在您使用 aws cli 时有效:aws s3 ls s3://mycoolbucketname/examples --no-sign-requestaws s3 ls s3://mycoolbucketname --no-sign-request
  • 我想实现这一点:当任何公共用户尝试访问 url https://mycoolbucketname.s3-us-east-2.amazonaws.com/examples/ 时,列出子文件夹 examples 中的所有文件,如您所见,我得到 AccessDenied。
猜你喜欢
  • 1970-01-01
  • 2013-01-17
  • 2017-03-07
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
  • 2014-12-23
  • 2015-12-16
  • 1970-01-01
相关资源
最近更新 更多