【问题标题】:Authorizing GCE to Access GCS授权 GCE 访问 GCS
【发布时间】:2015-07-06 19:26:41
【问题描述】:

我的 Google Compute Engine 中运行了一个 django 应用,它需要将视频文件上传到我在 Google Cloud Storage 中的存储桶中。在搜索认证方式时,我找到了this doc。在为实例设置服务帐户访问范围部分下,它说我需要在创建 VM 时在设置中启用云平台访问。我想知道这是否是必须的,是否有任何其他方式可以从计算引擎中的应用程序访问我的云存储桶。因为创建新的虚拟机和设置环境非常耗时。任何投入将不胜感激。提前致谢。

【问题讨论】:

    标签: google-cloud-storage google-compute-engine google-cloud-platform


    【解决方案1】:
    推荐的答案 Google Cloud

    the page you linked to 中所述,要从 Google Compute Engine 向 Google Cloud Storage 进行身份验证,您有多种选择:

    • 使用 VM 范围:必须在创建 VM 之前进行设置,因为一旦创建 VM,范围就是不可变的。如果您想要只读访问权限,则需要添加范围 devstorage.read_only(短格式)或 https://www.googleapis.com/auth/devstorage.read_only(完整路径)。如果你想要读写访问,你应该使用范围devstorage.read_write(短格式)或https://www.googleapis.com/auth/devstorage.read_write(完整路径)。

      注意:还有一个功能 gcloud beta compute instances set-scopes 可以在运行时更新 GCE VM 范围。

    • 使用范围的另一种方法是使用 JSON 身份验证令牌,例如通过 Service accountsGoogle API client libraries 可以使用它来连接到 Google Cloud Storage。

    【讨论】:

    • 非常感谢您的回答。但是你能解释更多关于 VM 作用域的信息吗?任何项目和帐户的 URL 是否相同?我一开始没有设置它们,但我仍然设法通过 gcloud auth login 然后凭据 = GoogleCredentials.get_application_default() 编写 GCS。所以我对谷歌的身份验证机制感到困惑。
    • @JFreebird — VM 范围允许您在 VM 的环境中拥有自动填充的凭据,这样您就可以避免在 VM 本身内运行 gcloud auth login。换句话说,如果您在 VM 上启用 GCS 范围,则可以使用 Google API 客户端库,它们将自动获取身份验证令牌,而无需代表您进行任何额外工作。如果您没有适当的范围,则需要进行身份验证或手动提供带有身份验证令牌的 JSON 文件。
    猜你喜欢
    • 2020-01-17
    • 2022-10-07
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2021-09-19
    • 2015-03-05
    • 2018-10-11
    相关资源
    最近更新 更多