【发布时间】:2015-06-06 16:27:45
【问题描述】:
我正在尝试获取一个通过 gcloud auth login 激活的服务帐户,以供 gsutil 获取。大查询命令行工具 bq 运行良好。
我遵循的操作顺序:
第一:
gcloud auth activate-service-account --key-file snip.json snip@developer.gserviceaccount.com
这导致输出: 为 [snip@developer.gserviceaccount.com] 激活的服务帐户凭据
第二: 我通过以下方式确认凭据处于活动状态:
gcloud auth list
这会导致: **认证账户: - snip@developer.gserviceaccount.com(活跃)...
第三: 我看看 bq tools 能不能把它捡起来:
bq ls
正确列出了我项目中的数据集。
第四: 我在我的桶上尝试 gsutil。我已将我的服务帐户用户作为所有者添加到此存储桶,以确保它具有权限。
gsutil ls gs://snip
这会导致:漫长的等待,然后最终: 您正在尝试访问未配置的受保护数据 证书。请访问https://cloud.google.com/console#/project 并注册一个帐户,然后运行“gcloud auth login” 命令配置 gsutil 以使用这些凭据。
然后我使用调试命令:
gsutil -D
输出:
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')]
在此之后,如果我通过 gcloud auth login 将自己的用户 ID 添加到凭证存储区,gsutil ls gs://snip 可以正常工作。如果我随后将服务帐户切换为活动帐户而不是我的用户 ID(使用 gcloud config set account),那么它将不再工作 - 我收到与上述相同的错误消息。
最后一条信息 - 我在我自己的虚拟机上运行它,而不是在 GCE 中。
【问题讨论】:
-
嘿,仅供参考,我安装了 PyOpenSSL 并切换到 p12。效果很好,但 JSON 仍然不起作用。
标签: google-cloud-storage google-cloud-platform