13

我正在使用 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

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

感谢您的帮助。

4

2 回答 2

13

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

希望这将很快得到解决,但与此同时,当您再次登录时,您可以尝试运行吗

export CLOUDSDK_PYTHON_SITEPACKAGES=1

然后看看它是否有效?

你可以跑

gcloud auth list

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

于 2014-07-31T19:49:39.447 回答
0

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

于 2020-06-23T08:30:16.433 回答