无法从虚拟机访问 Google Cloud Bucket?

无法从虚拟机访问 Google Cloud Bucket?

我正在尝试将文件从云存储桶传输到 VM。我收到以下错误:

ServiceException: 401 Anonymous caller does not have storage.objects.get access to the Google Cloud Storage object.

如何解决这个问题?

答案1

您使用的服务帐户的用户无权访问存储桶并从中复制内容。请为您尝试连接到存储桶的用户添加“存储管理员”或“存储对象管理员”角色。

为用户添加角色: https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role

Cloud Storage 角色概述: https://cloud.google.com/storage/docs/access-control/iam-roles#standard-roles

答案2

我最终在本地机器上(在 Colab 上略有不同)创建了一个 Google Cloud 服务帐户。然后你可以做两件事:

  • 为此服务帐户创建一个密钥,然后在您的虚拟机上下载该密钥,并将路径设置为export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>
  • 向此服务帐户添加角色,以便它可以从正确的存储桶中读取/写入。

您可以找到更多相关信息在文档中

然后,您使用 对该服务帐户进行身份验证gcloud auth activate-service-account --key-file=<JSON_FILE_PATH>

相关内容