【问题标题】:Google Cloud - does not have storage.buckets.get access to the Google Cloud Storage bucketGoogle Cloud - 没有 storage.buckets.get 访问 Google Cloud Storage 存储桶的权限
【发布时间】: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


【解决方案1】:

如您所见here“每个存储桶名称必须是唯一的”。这意味着即使您没有名为“xyz”的存储桶,其他人也有它。您可以通过尝试创建具有该名称的存储桶来检查这是否属实,您将收到如下图所示的消息。这就是您收到 403 错误的原因。该存储桶属于其他人,您无权访问它。

【讨论】:

    猜你喜欢
    • 2023-02-21
    • 2020-12-03
    • 2019-10-12
    • 2020-11-17
    • 2020-11-11
    • 2021-05-01
    • 2013-11-15
    • 1970-01-01
    • 2014-08-17
    相关资源
    最近更新 更多