我们使用谷歌云存储作为我们的 CDN。
但是,任何访问者都可以通过键入以下内容列出所有文件:http: //ourcdn.storage.googleapis.com/
在默认情况下存储桶下的所有文件仍可公开读取的情况下,如何禁用它?
我们之前使用
gsutil defacl ch -g AllUsers:READ
我们使用谷歌云存储作为我们的 CDN。
但是,任何访问者都可以通过键入以下内容列出所有文件:http: //ourcdn.storage.googleapis.com/
在默认情况下存储桶下的所有文件仍可公开读取的情况下,如何禁用它?
我们之前使用
gsutil defacl ch -g AllUsers:READ
在 GCP 仪表板中:</p>
那么,列表应该被禁用。
更新:
作为@Devy 评论,只需在此处查看下面的注释
注意:roles/storage.objectViewer 包含列出存储桶中对象的权限。如果您不想公开授予列表,请使用roles/storage.legacyObjectReader。
index.html
在存储桶的根目录中上传一个空文件。打开存储桶设置并单击编辑网站配置- 将index.html设置为主页。
它将阻止目录的列出。
你的defacl看起来不错。问题很可能是由于某种原因,AllUsers 还必须在存储桶本身上具有 READ、WRITE 或 FULL_CONTROL。您可以使用以下命令清除它们:
gsutil acl ch -d AllUsers gs://bucketname
您的命令将存储桶上的默认对象 ACL 设置为 READ,这意味着任何人都可以访问对象。要防止用户列出对象,您需要确保用户在存储桶本身上没有 ACL。
gsutil acl ch -d AllUsers gs://yourbucket
应该做到这一点。您可能需要为 AllAuthenticatedUsers 运行类似的命令;看看桶 ACL
gsutil acl 获取 gs://yourbucket
应该很清楚。