我想要通過gcloud auth登錄激活的服務帳戶被gsutil接收。大查詢命令行工具bq正在撿起它。gsutil使用gcloud激活服務帳戶的問題
操作我下面的順序:
第一:
gcloud auth activate-service-account --key-file snip.json [email protected]
這將導致輸出: 激活服務帳戶憑據[[email protected]]
第二: 我確認憑證是活動的:
gcloud auth list
導致: **資格的帳戶: - [email protected](活動)...
第三: 我看BQ工具將它拾起:
bq ls
哪個正確列出了我的項目中的數據集。
第四: 我嘗試gsutil對着我的桶。我已將我的服務帳戶用戶添加爲此存儲桶的所有者,以確保其具有權限。
gsutil ls gs://snip
這導致:漫長的等待,然後最終: 您正在嘗試沒有配置 憑據訪問受保護的數據。請訪問https://cloud.google.com/console#/project 並註冊一個帳戶,然後運行「gcloud auth login」 命令來配置gsutil以使用這些憑據。
然後我使用debug命令:
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身份驗證登錄添加自己的用戶ID憑據存儲方式不同,gsutil LS gs:// snip工作正常。如果我然後將服務帳戶切換爲活動狀態而不是我的用戶標識(使用gcloud config set account),那麼它將不再工作 - 我得到與上述相同的錯誤消息。
最後一條信息 - 我在自己的虛擬機上運行這個,不在GCE內運行。
嘿fyi,我安裝了PyOpenSSL並切換到了p12。這很好,但JSON仍然無法正常工作。 – manofport 2015-04-01 21:51:26