AccessDeniedException:403使用所有者帐户在GCS上禁止访问

Mob*_*Mic 14 google-cloud-storage google-cloud-platform

我试图访问存储桶中的文件,并继续拒绝访问文件.我可以在GCS控制台中看到它们但可以通过它访问它们,并且无法通过运行以下命令的gsutil访问它们.

gsutil cp gs://my-bucket/folder-a/folder-b/mypdf.pdf files/

但所有这一切都是 AccessDeniedException: 403 Forbidden

我可以列出所有文件,但实际上并没有访问它们.我已经尝试将我的用户添加到acl但仍然没有效果.所有文件都是通过保险丝座从VM上传的,保险丝座完美无缺,只是丢失了所有访问权限.

我已经检查了这些帖子,但似乎没有一个解决方案能帮助我

尽管我是所有者,但无法像OWNER那样访问资源

gsutil从GCE返回"AccessDeniedException:403 Notufficient Permission"

gsutil cors set命令返回403 AccessDeniedException

Bra*_*ugh 6

这是完全有可能的。拥有存储桶将向该存储桶授予FULL_CONTROL权限,其中包括列出该存储桶中的对象的功能。但是,存储桶权限不会自动暗示任何对象权限,这意味着,如果某个其他帐户正在上传对象并将ACL设置为“私有”之类,则存储桶的所有者将无法访问它(尽管存储桶所有者可以删除该对象(即使他们无法读取该对象),因为删除对象是存储桶权限)。

我不熟悉默认的FUSE设置,但是如果我不得不猜测,您正在使用项目的系统帐户上载对象,并且将它们设置为私有。没关系。测试的最简单方法是从GCE主机运行gsutil,其中默认凭据为系统帐户。如果可行,则可以使用gsutil将ACL切换到更宽松的方式,例如“ project-private”。

这样做的命令是:

gsutil acl set -R project-private gs://muBucketName/
Run Code Online (Sandbox Code Playgroud)


小智 5

虽然,很老的问题。但我最近遇到了类似的问题。在尝试了此处建议的许多选项都没有成功之后,我仔细地重新检查了我的脚本,发现由于我的存储桶地址中的错误,我收到了错误gs://my-bucket。我修复了它,它完美地工作!