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

0

再起動で直りましたgcloud auth login。その後、Google は、J. Tigani によって共有されたソリューションにリンクされていると思われる CLOUDSDK 承認をトリガーする Web ページを開くように私に求めました。

于 2020-06-23T08:30:16.433 に答える