less than 1 minute read

gcloudは、GCPのリソースを、CLIで管理するためのコマンドである。gcloudの下に、サービス/機能ごとに様々なサブコマンドがぶら下がっている。 認証周りを管理するサブコマンドとしてgcloud authがあるのだが、これの下のサブコマンドに、

  • gcloud auth login
  • gcloud auth application-default login

という似た見た目のものがあり、違いは何なのかを調べた。

gcloud login

gcloud loginでは、gcloudコマンドが利用する認証を設定することができる。つまり、これでログインすれば、以降はgcloudコマンドによって、ログインしたアカウントと同じ権限でリソースを管理できる。

では、gcloud以外での認証とは何か。

gcloud application-default login

gcloud auth application-default loginでも、同様にログインプロセスが走るが、これによって、Application Default Credentials(ADC)に認証情報が設定される。

ADCは何かというと、各種言語のSDKがデフォルトで用いる認証情報である。GCPの各種リソースをプログラムからコントロールする際には、Googleが提供しているSDKを利用することになる。 これらSDKのAPIには、明示的に認証情報を渡すこともできるが、省略することもできる。その場合に、Application Default Credentialsが設定されていれば、そこから認証情報を得る。

これのおかげで、プログラムのソースを変更することなく、環境によって認証情報を変えることができるので便利である。

その他、知っておいた方が良いこと

  • gcloud auth logingcloudの利用する認証で、gcloud auth application-defualt loginは、ADCの利用する認証である。どちらも、他方の情報を使うことはない。
  • gcloud auth application-defualt login以外にも、GOOGLE_APPLICATION_CREDENTIALSに鍵ファイルへのパスを設定することでもADCの認証をコントロールできる。また、こちらの環境変数の方が優先度が高い。しかし、鍵ファイルを保存することはセキュリティ上好ましくない、とのこと

タグ: ,

カテゴリー:

更新日時: