LoginSignup
26
22

More than 3 years have passed since last update.

[GCP認証] プログラミング言語のクライアントライブラリからユーザアカウントを用いて認証する方法

Last updated at Posted at 2020-09-17

やりたいこと

個人用途で、Pythonのクライアントライブラリ(google-cloud-bigquery)からBigQueryのAPIを叩きたいみたいなケースを考えてください。

インターネット上のブログの多くでは、サービスアカウントを発行して、jsonの鍵を取得し、GOOGLE_APPLICATION_CREDENTIALSの環境変数に指定する方法が紹介されています。

ですが、個人ごとにサービスアカウントを発行するのは面倒です。

こうすればできる

個人の権限(=ユーザアカウント)を用いて、プログラミング言語のクライアントライブラリからGCPを利用する場合は gcloud auth application-default login コマンドを利用します

やり方は簡単で、ターミナルなどで以下のコマンドを実行します

$ gcloud auth application-default login

そうするとWebブラウザに飛ばされ、そこで個人の権限でGCPの認証をすれば、ローカルの ~/.config/gcloud/application_default_credentials.json にトークンが保存されます。

これがあればGOOGLE_APPLICATION_CREDENTIALSの環境変数がなくても、プログラミング言語のクライアントライブラリからGCPを利用できます。

gcloud auth application-default loginコマンドの公式マニュアル

注意

似たようなコマンドに gcloud auth logingcloud longinがありますが、これはgcloud, gsutil, bqなどのCLIコマンドの認証にしか使われません。

gcloud auth loginコマンドの公式マニュアル

詳細

整理すると、GCPの認証は四通りあります。

タイプが
* ユーザアカウント
* サービスアカウント
の二種類があり、

対象が
* CLIコマンド (gcloud, gsutil, bq)
* プログラミング言語のクライアントライブラリ等 ( pythonのgoogle-cloud-bigquery等)
の二種類があります。

CLIコマンド(gcloud, gsutil, bq) プログラミング言語のクライアントライブラリ等
ユーザーアカウント gcloud login gcloud auth application-default login
サービスアカウント gcloud auth activate-service-account --key-file JSONのキー サービスアカウントのJSONのキーをGOOGLE_APPLICATION_CREDENTIALSに指定

詳細については https://medium.com/google-cloud-jp/gcp-%E3%81%A8-oauth2-91476f2b3d7f がとてもわかり易いです。

他にも以下のリンクは参考になります

26
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
22