我正在尝试使用 gcloud storage cp 命令将文件从虚拟机实例上传到 Google Cloud Storage 存储桶。我已将服务帐户附加到具有存储管理员访问权限的虚拟机,但遇到访问被拒绝错误。
gcloud storage cp temp_files/test.txt gs://test-us-east/test.txt
错误信息:
Copying file://temp_files/test.txt to gs://test-us-east/test.txt
ERROR: User [[email protected]] does not have permission to access b instance [test-us-east] (or it may not exist): Access denied.
Completed files 0/1 | 0B
我已验证服务帐户具有使用策略分析器在存储桶中创建对象所需的权限。尽管暂时授予所有者访问权限,但问题仍然存在。
我还检查了我的存储桶下的权限选项卡,它显示了我的服务帐户具有存储管理员权限。此外,我检查了虚拟机的访问范围,它允许访问所有 API。
由于您给出的错误没有足够的信息来调试此问题,请检查日志中是否有任何特定错误或代码以进行进一步调试。同时尝试以下故障排除步骤来解决问题:
检查
IAM Service Account Credentials API
和Google Cloud Storage API
是否启用。
在编辑实例以允许访问所有
APIs
之前,您需要停止实例、编辑、保存更改并重新启动虚拟机。
您可以尝试使用“
gcloud auth login
”命令来使用具有项目编辑或所有权权限的帐户进行身份验证。然后将文件上传到云存储。
进入虚拟机终端后,输入“
gcloud init
”并使用默认服务帐户设置您的服务帐户,选择选项 1 或选项 2 以使用新帐户登录。登录后,尝试使用 gsutil
命令上传文件,该命令可能如下所示:gsutil cp empty.file gs://ctrain01/
。
确保您要复制的存储桶存在于您的项目中。
查看此文档以获取更多信息。