【问题标题】:Removing allUsers default acl on Google Cloud Storage (GCS)删除 Google Cloud Storage (GCS) 上的 allUsers 默认 acl
【发布时间】:2019-05-17 11:14:09
【问题描述】:

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

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

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

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

但是,当我检查时,删除不起作用!当我上传新文件时,它仍然授予公共读取权限。当我检查时:

gsutil defacl get gs://my-bucket

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

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

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

【问题讨论】:

  • 您如何检查该文件是否仍可访问?我试图重现该问题,当使用 gsutil defacl get gs://my-bucket 时,在 ACL 中更改 allUsers 前后的输出是相同的。此外,新上传的文件对我来说是非公开的。
  • 只是忘了补充一点,您也可以使用控制台、API 和客户端库来更改 ACL。查看文档以了解如何执行此操作的具体方法:cloud.google.com/storage/docs/access-control/…
  • @Maxim 我还通过上传新文件进行了检查,它们始终具有公共读取权限(所有用户的读取权限)。目前我的问题不是现有文件的 ACL,而是更多关于新上传文件的默认 ACL。我找不到在控制台上更改此设置的方法,在您共享的文档中,它还说:You cannot set default object ACLs using the GCP Console. Use gsutil instead. 不管怎样,感谢您的评论 :)
  • 那么当从 Cloud Console 查看 GCS 存储桶时,它在“公共访问”下显示为“公共”?如果是这样,你能告诉我gsutil defacl get gs://my-bucket 的输出吗?确保事先删除所有敏感信息(如果有)。另外,您在此过程中是否收到任何警告或错误?
  • 对于另一个问题,我用分步详细信息回答了这个问题:stackoverflow.com/a/53075168/8016720

标签: google-cloud-platform google-cloud-storage access-control gsutil


【解决方案1】:

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

我是 Google Cloud 支持员工 - 我的建议是在问题跟踪器 here 上打开一个私人问题,说明您的项目编号和受影响的 Cloud Storage 存储分区。另外,请确保也包含此 StackOverflow 帖子的链接。

最后,请在创建问题后告诉我问题 ID 或指向私人问题的链接,以便我尽快查看。

编辑:

解决方法是运行以下 gsutil command,它将默认 ACL 设置为 project-private ACL 的默认条目:

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

当 ACL 中只有一个条目时会出现此问题,因此无法删除它,即使它响应所有内容都已正确更新。

【讨论】:

【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2013-07-01
    • 2012-11-16
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多