man*_*ort 5 google-cloud-storage google-cloud-platform
我正在尝试获取一个已通过 gcloud auth 登录激活的服务帐户,以供 gsutil 选取。大查询命令行工具 bq 表现良好。
我遵循的操作顺序:
第一的:
gcloud auth activate-service-account --key-file snip.json snip@developer.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)
这会导致输出: 已激活 [snip@developer.gserviceaccount.com] 的服务帐户凭据
第二:我通过以下方式确认凭证处于活动状态:
gcloud auth list
Run Code Online (Sandbox Code Playgroud)
结果是:**凭据帐户:- snip@developer.gserviceaccount.com(活动)...
第三:我看看 bq 工具是否能识别它:
bq ls
Run Code Online (Sandbox Code Playgroud)
它正确列出了我的项目中的数据集。
第四:我在我的存储桶上尝试 gsutil。我已将我的服务帐户用户作为所有者添加到此存储桶中,以确保它具有权限。
gsutil ls gs://snip
Run Code Online (Sandbox Code Playgroud)
这会导致:长时间等待,最终: 您尝试在没有配置凭据的情况下访问受保护的数据。请访问https://cloud.google.com/console#/project 并注册一个帐户,然后运行“gcloud auth login”命令来配置 gsutil 以使用这些凭据。
然后我使用调试命令:
gsutil -D
Run Code Online (Sandbox Code Playgroud)
输出:
gsutil version: 4.11
checksum: snip (OK)
boto version: 2.30.0
python version: 2.7.5 (default, Jun 17 2014, 18:11:42) [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)]
OS: Linux 3.10.0-123.20.1.el7.x86_64
multiprocessing available: True
using cloud sdk: True
config path: no config found
gsutil path: /home/blah/google-cloud-sdk/platform/gsutil/gsutil
compiled crcmod: False
installed via package manager: False
editable install: False
Command being run: /home/blah/google-cloud-sdk/platform/gsutil/gsutil -o GSUtil:default_project_id=snip -D
config_file_list: []
config: [('debug', '0'), ('working_dir', '/mnt/pyami'),'https_validate_certificates', 'true'), ('debug', '0'), ('working_dir', '/mnt/pyami'), ('default_project_id', 'snip')]
Run Code Online (Sandbox Code Playgroud)
之后,如果我通过 gcloud auth 登录将我自己的用户 ID 添加到凭证存储中,gsutil ls gs://snip 工作正常。如果我随后将服务帐户切换为活动帐户而不是我的用户 ID(使用 gcloud config set account),那么它就不再工作 - 我收到与上面相同的错误消息。
最后一条信息 - 我在我自己的虚拟机上运行它,而不是在 GCE 中。
| 归档时间: |
|
| 查看次数: |
3386 次 |
| 最近记录: |