【问题标题】:Google Cloud Storage, Compute Engine and Insufficient Permission error谷歌云存储、计算引擎和权限不足错误
【发布时间】:2018-05-11 20:17:41
【问题描述】:

我知道这是自 2016 年以来广泛讨论的问题,但我一直无法解决该问题。 对于 Google Cloud 项目,我的个人帐户和服务帐户(我使用命令 gcloud auth list 获得的帐户)都是所有者。

使用 google-cloud 包(存储模块)的 python3 代码在我的笔记本电脑上使用我的个人帐户可以正常工作,即文件上传正常。

相反,在计算引擎上,我收到以下错误:

  File "/home/user/git/project/GoogleUtils/StorageUtils.py", line 109, in upload_blob
    blob.upload_from_filename(source_file_name)
  File "/home/analysis/.local/lib/python3.5/site-packages/google/cloud/storage/blob.py", line 992, in upload_from_filename
    size=total_bytes)
  File "/home/analysis/.local/lib/python3.5/site-packages/google/cloud/storage/blob.py", line 949, in upload_from_file
    _raise_from_invalid_response(exc)
  File "/home/analysis/.local/lib/python3.5/site-packages/google/cloud/storage/blob.py", line 1735, in _raise_from_invalid_response
    raise exceptions.from_http_response(error.response)
google.api_core.exceptions.Forbidden: 403 POST https://www.googleapis.com/upload/storage/v1/b/bucket_name/o?uploadType=multipart: Insufficient Permission

我的个人帐户和服务帐户都会出现这种情况。我想这不是权限问题......那么我应该在哪里寻找?奇怪的是文件下载工作完美。

【问题讨论】:

    标签: python-3.x google-cloud-platform google-cloud-storage


    【解决方案1】:

    我找到的唯一解决方案是通过(在设置屏幕底部)从“默认访问”切换到“完全访问”来修改 VM 设置。

    【讨论】:

    • 现在有一个“为每个 API 设置访问权限”选项,这比仅仅启用对所有内容的访问权限更安全。
    【解决方案2】:

    已经回答了,但我认为值得澄清一下。

    是的,您是对的,这不是服务帐户的权限错误,而是由于默认设置而导致的预期行为,但让我解释一下:

    • 当您使用 Google Cloud Engine 使用 default service 帐户创建虚拟机时,您必须仔细检查哪些是该虚拟机允许的 API。 (您可以在创建实例时检查和修改它们,您可以从 Google Cloud Console 中查看它们,检查任何实例的详细信息)。这种可能看起来很棘手的行为旨在限制服务帐户的权力,该服务帐户可能分布在许多不同的实例上,如果受到损害(登录到实例就足够了)可能会导致许多问题,如果用户给出他全权,即项目所有者。

    • 另一方面,当您不使用默认服务帐户时,您必须使用具有服务帐户的 IAM 角色来控制 VM 访问以修改访问范围。因此,在您的情况下,具有完全访问权限的服务帐户足以使用所有可用的 API。

    您可以验证这两种不同的行为,创建一个新的服务帐户,在创建实例的那一刻,先使用默认帐户,然后使用新帐户,您会注意到会出现两个不同的选项卡。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      相关资源
      最近更新 更多