よしたく blog

ほぼ週刊で記事を書いています

gcloud auth loginとapplication-default loginの違いを整理した

記事の概要

Google Cloud SDKの認証コマンド、`gcloud auth login` と `gcloud auth application-default login` の違いについてまとめた。

gcloud auth login

目的

`gcloud` コマンドラインツールを使用するユーザー自身を認証するためのコマンドになる。

用途

  • 個人の開発マシンでの作業
  • 手動での `gcloud` コマンドの実行

具体例

Google Cloud Platform上で仮想マシンを手動で作成したい場合、以下のコマンドを使用して自分自身を認証する。

gcloud auth login

その後、以下のようなコマンドで仮想マシンを作成することができる。

gcloud compute instances create INSTANCE_NAME

gcloud auth application-default login

概要

特定のアプリケーションがGoogle Cloudのリソースにアクセスできるかどうかを確認するための認証。アプリケーションは、バックエンドのサービスやスクリプトなど、人の介入なしに動作するものを指す。

具体例

  1. WebアプリケーションがCloud Storageから画像を取得: ユーザーにプロフィール画像を表示するWebアプリケーションが、Cloud Storageのバケットから画像を自動的に取得する場合。
  2. ログ処理スクリプト: 一日の終わりに、Compute EngineのインスタンスからログファイルをBigQueryに自動的にアップロードするスクリプト
  3. 定期的なデータバックアップ: Cloud Schedulerを使用して、Cloud SQLのデータベースを定期的にバックアップするスクリプト
  4. 自動的なリソースのスケーリング: Cloud Pub/Subのメッセージキューのサイズに基づいて、App Engineのインスタンス数を自動的にスケーリングするアプリケーション。

具体的なコマンド

gcloud auth application-default login

違い

  • `gcloud auth login` はユーザーの認証のため、`gcloud auth application-default login` はアプリケーションの認証のために使用される。
  • `gcloud auth login` は主に手動の操作のため、`gcloud auth application-default login` はアプリケーションの開発の際に使用される。