bq コマンドライン ツールを使用して、Bigquery テーブルからクエリを実行しています。クエリ プロセスが実行されているボックスからログインおよびログアウトしたときに、サービス アカウント認証を持続させる方法はありますか?
私がした手順:
- Linuxボックスにログインしました
次を実行して、サービス アカウントを認証します。
gcloud auth activate-service-account --key-file /somekeyFile.p12 someServiceAccount.gserviceaccount.com
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
認証されたサービス アカウントの資格情報を保持する方法はありますか?
ご協力ありがとうございました。