【发布时间】: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