如何从ACL控件禁用Google Cloud Storage存储桶列表?

Tom*_*man 4 cdn google-cdn google-cloud-storage

我们正在使用Google云存储作为CDN。

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

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

我们之前使用

gsutil defacl ch -g AllUsers:READ 
Run Code Online (Sandbox Code Playgroud)

Hao*_* Xu 11

在GCP仪表板中?

  1. 陷入困境
  2. 点击“ 权限 ”标签并进入。
  3. 在成员列表中找到“ allUsers ”,将角色从Storage Object Viewer更改为Storage Legacy Object Reader

然后,应禁用列表。

更新:

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

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

  • 这是 GCP 文档中官方推荐的方式:https://cloud.google.com/storage/docs/access-control/making-data-public#buckets,因为 GCP Storage Legacy Object Reader 权限角色包明确没有上市许可。查看屏幕截图:https://d1sz9tkli0lfjq.cloudfront.net/items/3v042M2q2a2q3Y2O1P1Y/%5Be353a730509d8daea03ccf20f66daa4d%5D_GCP-Storage-LegacyObjectReaderPerm.png?v=e7c67e8b (2认同)

max*_*ime 6

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

它将阻止目录的列表。

  • 但这并不能阻止其他目录的列表。根据接受的答案,将角色从存储对象查看器更改为存储旧对象读取器。 (3认同)

Bra*_*ugh 5

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

gsutil acl ch -d AllUsers gs://bucketname
Run Code Online (Sandbox Code Playgroud)