首页 文章

如何使用IAM将文件从谷歌 Cloud 实例上传到 Cloud 存储?

提问于
浏览
1

我希望文件从 Cloud VM自动上传到 Cloud 存储 . 如果不将谷歌访问密钥ID放到实例,有没有办法做到这一点?

1 回答

  • 2

    有一种巧妙的方法来处理GCE内部的身份验证 . GCE实例可以具有关联的服务帐户,该帐户代表在该GCE实例上运行的程序 . 该服务帐户可以被授予与任何其他帐户一样写入GCS存储桶的权限 .

    在部署的GCE实例上可以轻松获得充当此服务帐户的凭据 . 最简单的方法是使用支持Application Default Credentials的Google工具或库 . 如果您的身份验证代码完全是自定义的,则可以直接从URL“http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token " (if you do this, you must also include the header " Metadata-Flavor:Google”检索该服务帐户的访问令牌 .

    GCS命令行实用程序gsutil已预先安装在GCE实例上,它可以使用应用程序默认凭据 . 如果从脚本或shell调用它,它将上载文件到 Cloud 存储而无需进一步配置 .

    使服务帐户与GCS协同工作有一个重要的技巧 . GCE要求您指定服务帐户具有哪些范围,默认情况下,GCS不包含在这些范围中,这意味着服务帐户最初不能与GCS一起使用 . 您需要将GCS添加到允许的范围并重新启动实例 .

    有关为GCE实例配置服务帐户的文档如下:https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances

    有关如何使用应用程序默认凭据的文档,请访问:https://developers.google.com/identity/protocols/application-default-credentials

相关问题