【问题标题】:Can't remove OWNER access to a Google Cloud Storage object无法移除 OWNER 对 Google Cloud Storage 对象的访问权限
【发布时间】:2019-03-31 17:49:31
【问题描述】:

我有一台服务器,它使用一个服务帐户将一些数据文件写入 Cloud Storage 存储桶,我已向该服务帐户授予该存储桶的“存储对象创建者”权限。我希望该服务帐户的权限是只写的。

据我所知,Storage Object Creator 权限还允许读取访问权限,因此我只想在对象被写入后删除它们的权限。我以为我可以使用 ACL 来执行此操作,但它似乎不起作用。如果我使用

gsutil acl get gs://bucket/object > acl.json

然后编辑acl.json,去掉服务账号的OWNER权限,然后使用

gsutil acel set acl.json gs://bucket/object

更新ACL,发现没有任何变化;如果我再次检查 ACL,OWNER 权限仍然存在。如果我尝试在 Cloud Console 网页界面中移除 OWNER 权限,也会发生同样的情况。

有没有办法删除该权限?或者其他方式来实现这一点?

【问题讨论】:

    标签: google-cloud-storage


    【解决方案1】:

    您无法从以下位置删除上传对象的服务帐户的 OWNER 权限:

    https://cloud.google.com/storage/docs/access-control/lists#bestpractices

    存储桶或对象所有者始终拥有存储桶或对象的OWNER 权限。

    存储桶的所有者是项目所有者组,对象的所有者是上传对象的用户,如果对象是由匿名用户上传的,则为项目所有者组。

    当您将新的 ACL 应用到存储桶或对象时,如果您省略授权,Cloud Storage 会分别为存储桶或对象所有者添加OWNER 权限。

    我没有尝试过,但是您可以使用一次服务帐户(称为 SA1)上传对象,然后使用单独的服务帐户(称为 SA2)重写对象,然后删除对象。 SA1 将不再是所有者,因此没有读取权限。 SA2 将继续拥有读取和写入权限,但无法阻止对象的所有者读取它。

    【讨论】:

      【解决方案2】:

      重命名对象可以解决问题。

      gsutil mv -p gs://bucket/object gs://bucket/object-renamed
      gsutil mv -p gs://bucket/object-renamed gs://bucket/object
      

      renamer 服务帐户将成为对象OWNER

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-24
        • 2018-12-26
        • 1970-01-01
        • 2020-09-23
        • 1970-01-01
        • 2021-01-16
        • 2023-03-12
        相关资源
        最近更新 更多