【问题标题】:How to get gcloud auth activate-service-account persist如何让 gcloud auth activate-service-account 持久化
【发布时间】:2014-09-23 20:15:59
【问题描述】:

我正在使用 bq 命令行工具从 Bigquery 表中进行查询。当我登录和开箱即用运行查询过程时,有没有办法让服务帐户身份验证保持不变?

我做的步骤:

  1. 我登录了linux盒子
  2. 通过运行验证服务帐户:

    gcloud auth activate-service-account --key-file /somekeyFile.p12 someServiceAccount.gserviceaccount.com 
    
  3. 从 bigquery 表查询,这很好用:

    bq --project_id=formal-cascade-571 query "select * from dw_test.clokTest"
    

但后来我从框中注销,然后重新登录。当我再次查询 Bigquery 表时:

bq --project_id=formal-cascade-571 query "select * from dw_test.clokTest"

它给了我错误:

您当前的活动帐户 [someServiceAccount.gserviceaccount.com] 没有任何有效凭据。

即使我传入私钥文件:

bq --service_account=someServiceAccount.gserviceaccount.com --service_account_credential_file=~/clok_cred.txt --service_account_private_key_file=/somekeyFile.p12 --project_id=formal-cascade-571 query "select * from dw_test.clokTest"

它给出了同样的错误:

您当前的活动帐户 [someServiceAccount.gserviceaccount.com] 没有任何有效凭据。

所以每次我需要通过以下方式重新验证我的服务帐户时:

gcloud auth activate-service-account

有没有办法让经过身份验证的服务帐户凭据保持不变?

感谢您的帮助。

【问题讨论】:

    标签: google-bigquery gcloud


    【解决方案1】:

    我询问了 GCloud 开发人员,他们提到了一个已知错误,即除非设置了环境变量 CLOUDSDK_PYTHON_SITEPACKAGES,否则服务帐户不会显示。

    希望这个问题能尽快解决,但同时,当您再次登录时,您可以尝试运行

    export CLOUDSDK_PYTHON_SITEPACKAGES=1
    

    然后看看它是否有效?

    你可以跑

    gcloud auth list
    

    查看哪些帐户有凭据;它应该列出您的服务帐户。

    【讨论】:

      【解决方案2】:

      我通过重新启动 gcloud auth login 来修复它。然后,Google 要求我打开一个网页,该网页触发了 CLOUDSDK 授权,我认为该网页与 J. Tigani 共享的解决方案有关。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-21
        • 2021-03-21
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多