S3存储桶清单显示顶级对象名称

0

【以下的问题经过翻译处理】 ### 情况

客户正在建立一个存储桶,以从多个客户外部汇集数据。如果我们称其为"ingest-bucket",他们的意图是使用一个文件夹结构,每个客户一个文件夹。预期的结构类似于:

  • ingest-bucket/customer1/data1.log
  • ingest-bucket/customer1/data2.log
  • ingest-bucket/customer2/data1.log
  • ingest-bucket/customer2/data2.log
  • ingest-bucket/customer3/data1.log
  • ingest-bucket/customer3/data2.log

...等等...

任务

他们尝试给第三方访问与其相关的ingest文件夹。想象一下这是来自customer2的工程师。看起来他们需要授予S3:ListBucket权限,以允许他们读取和下载文件。

问题

问题在于,当customer2运行ListBucket命令时,他们可以看到customer1和customer3文件夹的存在。他们无法访问这些文件夹中的任何对象,但是他们可以看到文件夹本身的存在。这是一个问题,因为我们不希望customer2看到名为“customer1”的文件夹。它透露给了customer2:“customer1是我们的客户”这一信息,这是不可接受的。

可能的解决办法

有解决方法吗?我们决定可能会为这个第一级文件夹使用随机名称,以使文件夹名称匿名化。这并不是很好,但可以接受。但是,我是否遗漏了什么?

profile picture
专家
已提问 1 年前44 查看次数
1 回答
0

【以下的回答经过翻译处理】 虽然您无法限制存储桶列表返回的内容,但可以使用Condition key来对调用者行为进行限制,规定调用者在listbucket调用中必须指定一个prefix前缀,从而将结果限制为仅返回符合该前缀的object。示例策略包含一种要求调用者提供键前缀的条件进行列表操作的情况: https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则