删除 Google 云存储 (GCS) 上的所有用户默认 acl

Removing allUsers default acl on Google Cloud Storage (GCS)

在实验过程中,我不小心为一个不应该 public 的存储桶中的所有用户添加了默认读取权限。我使用了以下命令:

gsutil defacl ch -u allUsers:R gs://my-bucket

意识到我的错误后,我尝试使用以下命令删除默认读取权限:

gsutil defacl ch -d allUsers gs://my-bucket

但是,我查了一下,删除没有用!当我上传新文件时,它仍然授予 public 的读取权限。当我检查时:

gsutil defacl get gs://my-bucket

它仍然显示所有用户的读取访问权限。

这是 gsutil 函数的错误吗?目前我使用 gsutil 版本 4.34.

是否有任何其他方法可以更改所有用户对 google 云存储桶的默认访问权限?如果有其他方法,请告诉我,谢谢!

我已多次尝试重现此问题,但均无济于事。如果无法访问项目的元数据和配置,恐怕很难解决这种情况;因为这是目前确实需要的东西,以便找出可能出了什么问题。

我是一名 Google 云支持员工 - 我的建议是在问题跟踪器 here 上打开一个私人问题,说明您的项目编号和受影响的云存储桶。另外,请确保也包含此 Whosebug post 的 link。

最后,请在创建私人问题后告诉我问题 ID 或 link,以便我尽快查看。

编辑:

解决方案是 运行 以下 gsutil command, which sets the default ACL to the project-private ACL 的默认条目:

gsutil defacl set project-private gs://my-bucket

当 ACL 中只有一个条目时会发生此问题,导致无法删除它,即使它响应所有内容都已正确更新也是如此。

我在设置为 public 的存储桶中的单个对象遇到了同样的问题。我只能在向对象添加新权限后才能删除 allUsers 权限 - 即使使用建议的“project-private”命令也不起作用。