【发布时间】:2020-09-10 21:54:43
【问题描述】:
我有一个具有存储管理员角色的服务帐户。当我尝试使用client.lookup_bucket('xyz') 时,出现以下访问错误:
google.api_core.exceptions.Forbidden: 403 GET https://storage.googleapis.com/storage/v1/b/xyz?projection=noAcl: <svc_account> does not have storage.buckets.get access to the Google Cloud Storage bucket.
xyz 是一个不存在的存储桶。我能够访问现有的存储桶。但根据文档 -lookup_bucket 将按名称获取存储桶,如果未找到则返回 None。
任何人都可以告诉我为什么即使我具有存储管理员角色(我什至尝试了整个项目的所有者角色,但我仍然遇到相同的错误),我也会收到 Forbidden 错误
【问题讨论】:
-
其他人(您无法控制的另一个项目)是否拥有此存储桶?
-
看起来不像。我在控制台上看不到任何其他项目,但我可能无法访问。你能告诉我这是如何工作的吗?我正在使用客户端 API 对其进行身份验证,这意味着我正在提供项目 ID。那么为什么它会抱怨不同项目中的存储桶呢?
-
如果我拥有存储桶
xyz,您将收到权限错误403。我的评论是,您拥有存储桶吗?如果没有,请不要假设其他人尚未拥有它。查看下面 Samuel 的回答以确定存储桶名称是否可用。 -
谢谢。现在有道理了。我的印象是存储桶名称在项目中是通用的,因此我感到困惑
标签: google-cloud-platform google-cloud-storage