我想要文件从云VM自动上传到云存储。有没有办法做到这一点,而不需要将Google访问密钥ID添加到实例?如何使用IAM将文件从谷歌云实例上传到云存储?
1
A
回答
1
从GCE内部处理验证有一个很好的方法。 GCE实例可以有一个关联的服务帐户,代表在该GCE实例上运行的程序。可以授予该服务帐户像任何其他帐户一样写入您的GCS存储区的权限。
充当此服务帐户的凭证在部署的GCE实例上很容易获得。最简单的方法是使用支持应用程序默认凭证的Google工具或库。如果您的授权码是完全自定义的,您可以直接从URL“http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token”中检索该服务帐户的访问令牌(如果您这样做,还必须包含标题“Metadata-Flavor:Google”)。
GCS命令行实用程序gsutil预先安装在GCE实例上,它可以使用应用程序默认凭据。如果您从脚本或shell中调用它,它会将文件上传到云存储,而无需进一步配置。
使服务帐户与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
相关问题
- 1. 如何使用java将文件上传到谷歌云存储?
- 2. 如何大文件从一个Java GAE实例上传到谷歌云存储
- 3. 如何将pdf文件存储在谷歌云存储上?
- 4. 我可以上传文件到谷歌云存储从URL?
- 5. NodeJs - Loopback:如何上传谷歌云存储上的文件
- 6. 谷歌云平台 - 如何将图像文件上传到谷歌云存储桶?
- 7. 上传到谷歌云储存使用JSON API从JavaScript
- 8. 文件上传到谷歌云存储AppEngine上(Python)的
- 9. 如何将文件上传到谷歌云存储用symfony/gauferette/VichUploaderBundle
- 10. 谷歌云存储 - 知道谁上传
- 11. 谷歌云存储卷曲php上传
- 12. 上传文件到谷歌云存储由JavaScript
- 13. 上传.RAW文件到谷歌云存储
- 14. 谷歌云存储
- 15. 使用SSIS将本地文件上传到谷歌云存储桶
- 16. 无法使用邮政方法将文件上传到谷歌云存储
- 17. 谷歌pubsub到谷歌云存储
- 18. 上传到谷歌云存储从Django的App Engine上
- 19. 批量上传请求到谷歌云存储使用javascript
- 20. 如何使用谷歌云端点API方法上传图片到谷歌云端存储
- 21. 在谷歌云存储桶上上传大文件
- 22. 文件上传到谷歌云存储谷歌的App Engine(Python)的
- 23. 云存储谷歌App Engine的文件
- 24. Oozie - 谷歌云存储 - 删除文件
- 25. 无法读取上传到谷歌云存储存储桶中的csv文件
- 26. 谷歌云存储:PUT对象与POST对象上传文件。
- 27. HttpError 400试图上传PDF文件在谷歌云存储时
- 28. 谷歌云存储体验和示例
- 29. 谷歌云存储示例不工作
- 30. 通过谷歌云端上传文件端点到谷歌云端通过Android客户端存储