11

我们使用谷歌云存储作为我们的 CDN。

但是,任何访问者都可以通过键入以下内容列出所有文件:http: //ourcdn.storage.googleapis.com/

在默认情况下存储桶下的所有文件仍可公开读取的情况下,如何禁用它?

我们之前使用

gsutil defacl ch -g AllUsers:READ 
4

4 回答 4

43

在 GCP 仪表板中:</p>

  1. 进入你的桶
  2. 单击“权限”选项卡并进入。
  3. 在成员列表中找到“ allUsers ”,将角色从Storage Object Viewer更改为Storage Legacy Object Reader

那么,列表应该被禁用。

更新:

作为@Devy 评论,只需在此处查看下面的注释

注意:roles/storage.objectViewer 包含列出存储桶中对象的权限。如果您不想公开授予列表,请使用roles/storage.legacyObjectReader

于 2019-05-29T06:51:29.410 回答
7

index.html在存储桶的根目录中上传一个空文件。打开存储桶设置并单击编辑网站配置- 将index.html设置为主页

它将阻止目录的列出。

于 2018-09-25T15:39:06.810 回答
4

你的defacl看起来不错。问题很可能是由于某种原因,AllUsers 还必须在存储桶本身上具有 READ、WRITE 或 FULL_CONTROL。您可以使用以下命令清除它们:

gsutil acl ch -d AllUsers gs://bucketname
于 2013-10-01T20:30:57.703 回答
2

您的命令将存储桶上的默认对象 ACL 设置为 READ,这意味着任何人都可以访问对象。要防止用户列出对象,您需要确保用户在存储桶本身上没有 ACL。

gsutil acl ch -d AllUsers gs://yourbucket

应该做到这一点。您可能需要为 AllAuthenticatedUsers 运行类似的命令;看看桶 ACL

gsutil acl 获取 gs://yourbucket

应该很清楚。

于 2013-10-01T20:40:04.750 回答