无法删除对Google Cloud Storage对象的所有者访问权

时间:2018-10-27 00:08:40

标签: google-cloud-storage

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

据我所知,“存储对象创建者”权限还允许读取访问,因此,我只想在对象写入后删除其权限。我以为可以使用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权限,也会发生同样的事情。

是否可以删除该权限?还是另一种方式来实现这一目标?

2 个答案:

答案 0 :(得分:1)

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

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

  

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

     

存储桶的所有者是项目所有者组,而对象的所有者是上载对象的用户,或者如果对象是匿名用户上载的,则是项目所有者组。

     

在将新的ACL应用于存储桶或对象时,如果您省略了授权,则Cloud Storage分别向存储桶或对象所有者添加OWNER权限。

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

答案 1 :(得分:0)

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

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

重命名器服务帐户将成为对象OWNER