gcloud CLI を承認する

Google Cloud にアクセスするには、一般的に Google Cloud CLI を承認する必要があります。ここでは使用可能な承認オプションを示すとともに、承認に使用するアカウントを管理する方法についても説明します。Compute Engine インスタンスまたは Cloud Shell を使用している場合は、gcloud CLI を承認する必要はありません。

アカウントのタイプ

ユーザー アカウントまたはサービス アカウントを使用して、gcloud CLI に Google Cloud へのアクセス権限を付与できます。

ユーザー アカウントは、エンドユーザーがアプリケーションに認証できるようにする Google Cloud アカウントです。最も一般的な使用例、特に gcloud CLI をインタラクティブに使用する場合には、ユーザー アカウントを使用することをおすすめします。

サービス アカウントは、Google Cloud プロジェクトに関連付けられている Google アカウントであり、特定のユーザーではありません。 Cloud Functions、App Engine、Compute Engine、Google Kubernetes Engine を使用する場合は、組み込みのサービス アカウントを使用できます。複数のマシンで gcloud CLI スクリプトを実行するには、サービス アカウントをおすすめします。

承認タイプを選択する

Google Cloud CLI を承認して、Google Cloud リソースを管理する必要があります。Google Cloud CLI と Google Cloud はどちらも、認証と承認に OAuth2 を使用します。

次のいずれかの承認タイプを選択します。

タイプ 説明
ユーザー アカウント コマンドラインから gcloud CLI を使用する場合や、gcloud CLI を使用してスクリプトを作成し、単一のマシンで使用する場合に推奨されます。
サービス アカウント Cloud SDK を本番環境へのマシンのデプロイの一環としてインストールして設定する場合や、すべてのユーザーが root にアクセスできる Compute Engine 仮想マシン インスタンスで使用する場合におすすめします。

認証と Google Cloud の詳細については、認証の概要をご覧ください。

ユーザー アカウントを使用して承認する

ユーザー アカウントでのアクセスを許可するには、以下の gcloud CLI コマンドを使用します。

コマンド 説明
gcloud init アクセスを承認し、その他の一般的な設定手順を実行します。
gcloud auth login アクセスの承認のみを行います。

承認の際、このコマンドは、Google Cloud からアカウントの認証情報を取得して、ローカル システムに保存します。指定したアカウントが、構成のアクティブ アカウントになります。gcloud CLI は、保存されている認証情報を使用して Google Cloud にアクセスします。1 つの gcloud CLI 環境で認証情報を保存できるアカウントの数に制限はありませんが、一度に有効にできるアカウントは 1 つだけです。

gcloud init を実行する

gcloud init は、アクセスを承認し、その他の一般的な設定手順を実行します。gcloud init では、ウェブベースの承認フローを使用してユーザー アカウントを認証し、アクセス権限を付与します。

アクセスを承認し、その他の一般的な設定手順を実行するには:

  1. gcloud init を実行します。

    gcloud init
    

    ウェブブラウザが自動的に開かないようにするには、代わりに次のコマンドを実行します。

    gcloud init --console-only
    

    リモート システムで ssh を使用してコマンドを実行するときに、そのシステム上のブラウザにアクセスできない場合、--console-only フラグを使用すると便利です。この場合、指定された URL をローカル システムのブラウザで開いて、承認プロセスを完了する必要があります。

  2. ブラウザベースの承認フローに従ってアカウントを認証し、アクセス権限を付与します。

gcloud init の詳細については、gcloud CLI の初期化をご覧ください。

gcloud auth login を実行します。

gcloud auth login を実行すると、ユーザー アカウントのみが承認されます。その他の設定手順を実行せずにアクセスを承認するには、次のいずれかのオプションを使用します。

  • ブラウザを備えたマシンで gcloud CLI を承認するには、次の手順に従います。

    1. gcloud CLI を承認する

      gcloud auth login
      
    2. ブラウザベースの承認フローに従ってアカウントを認証し、アクセス権限を付与します。

  • ブラウザのないマシンで gcloud CLI を承認する場合、ブラウザを使用して別のマシンに gcloud CLI をインストールできます。--no-browser フラグを使用します。

    1. gcloud CLI を承認する

      gcloud auth login --no-browser
      
    2. gcloud auth login --remote-bootstrap=" で始まる long コマンドをコピーします。

    3. このコマンドは、ウェブブラウザと gcloud CLI ツール バージョン 372.0 以降をローカルにインストールしている別の信頼できるマシンのコマンドラインに貼り付けて実行します。

    4. ウェブブラウザからマシンから長い URL 出力をコピーします。

    5. 「上のコマンドの出力を入力」というプロンプトの下の最初のマシンに長い URL を貼り付け、Enter キーを押して承認を完了します。

  • ブラウザのないマシンで gcloud CLI を承認する場合:失敗ブラウザで別のマシンに gcloud CLI をインストールするには、--no-launch-browserフラグを使用します。--no-launch-browser フラグを指定すると、ウェブブラウザが自動的に開かなくなります。

    1. gcloud CLI を承認する

      gcloud auth login --no-launch-browser
      
    2. https://accounts.google.com/o/oauth2/auth... で始まる長い URL をコピーします。

    3. ウェブブラウザを持つ、信頼できる別のマシンのブラウザに、この URL を貼り付けます。

    4. ウェブブラウザからマシンから認証コードをコピーします。

    5. プロンプトの最初のマシンに認証コード「Enter verification code」を貼り付け、Enter キーを押して認証を完了します。

  • すでにアクセス トークンを取得している場合は、次のいずれかの方法を使用してアクセス トークンを gcloud CLI に渡します。

    • アクセス トークンをファイルに保存し、--access-token-file フラグを使用してパスを設定します。
    • アクセス トークンをファイルに保存し、そのパスを auth/access_token_file プロパティに設定します。
    • 環境変数 CLOUDSDK_AUTH_ACCESS_TOKEN にアクセス トークン値を設定します。

サービス アカウントを使用して承認する

gcloud auth login コマンドは、ローカル ファイル システムに保存されている認証情報ファイルを使用して、サービス アカウントによるアクセスを承認します。この認証情報は、Workload Identity 連携用の認証情報構成ファイルまたはサービス アカウント キーのいずれかです。

Workload Identity 連携を使用してサービス アカウントを承認する

Workload Identity 連携の外部認証情報を使用してサービス アカウントで gcloud CLI を承認するには、次の操作を行います。

  1. Google Cloud コンソールで、[サービス アカウント] ページに移動します。

    [サービス アカウント] に移動

  2. 既存のアカウントを選択するか、[サービス アカウントの作成] をクリックして新しいアカウントを作成します。

  3. サポートされている ID プロバイダの指示に従って、Workload Identity 連携の認証情報構成ファイルを作成します。

  4. サービス アカウントを有効にするには、--cred-file フラグを指定して gcloud auth login を実行します。

    gcloud auth login --cred-file=CONFIGURATION_FILE
    

    CONFIGURATION_FILE は、Workload Identity 連携の認証情報構成ファイルのパスに置き換えます。

サービス アカウント キーを使用してサービス アカウントを承認する

サービス アカウント キーを使用してサービス アカウントで gcloud CLI を承認するには、次の手順を行います。

  1. Google Cloud コンソールで、[サービス アカウント] ページに移動します。

    [サービス アカウント] に移動

  2. 既存のアカウントを選択するか、[サービス アカウントの作成] をクリックして新しいアカウントを作成します。

  3. サービス アカウント キーを作成するには、IAM の手順を参照してサービス アカウント キーを作成してください。

  4. サービス アカウントを有効にするには、--cred-file フラグを指定して gcloud auth login を実行します。

    gcloud auth login --cred-file=KEY_FILE
    

    KEY_FILE は、サービス アカウント キー ファイルのパスで置き換えます。

アカウントの一覧表示

認証情報がローカル システムに保存されているアカウントの一覧を表示するには、gcloud auth list を実行します。

gcloud auth list

gcloud CLI により、アカウントが一覧表示され、どのアカウントが有効かが示されます。

Credentialed accounts:
 - user-1@gmail.com (active)
 - user-2@gmail.com

有効なアカウントを切り替える

有効なアカウントを切り替えるには、gcloud config set を実行します。

gcloud config set account ACCOUNT

ここで、[ACCOUNT] はアカウントの完全なメールアドレスです。

アカウントを切り替えるには、別のアカウントを指定する構成を別途作成して、構成を切り替える方法もあります。

gcloud config configurations activate CONFIGURATION

gcloud CLI で使用するアカウントを、呼び出しのたびに切り替えるには、--account フラグを使用して、有効なアカウントをオーバーライドします。

承認済みセッションの長さを設定する

管理者は、各ユーザーが再認証を行わずに gcloud CLI にアクセスできる時間を管理できます。たとえば、昇格した権限を持つユーザーは、通常のユーザーよりも頻繁に再認証できます。

詳細については、Google サービスのセッション継続時間を設定するをご覧ください。

アカウントの認証情報を取り消す

特定のアカウントでの gcloud CLI からのアクセスを禁止したい場合、認証情報を取り消すことができます。アカウントを切り替えるために、認証情報を取り消す必要はありません。

認証情報を取り消すには、gcloud auth revoke を実行します。

gcloud auth revoke ACCOUNT

すべてのマシンに対し、gcloud CLI に対するすべてのアクセス権を取り消すには、アカウントにアクセスできるアプリケーションのリストから gcloud CLI を削除します

認証情報ファイルを操作する

認証情報ファイルを見つける

認証情報ファイルの場所を確認するには、gcloud info を実行します。

gcloud info

gcloud CLI により、インストールに関する情報が表示されます。 認証情報ファイルはユーザーの構成ディレクトリに保存されます。

User Config Directory: [/home/USERNAME/.config/gcloud]

アプリケーションのデフォルト認証情報を設定します。

gcloud CLI は、gcloud auth application-default コマンド グループを使用してアプリケーションのデフォルト認証情報(ADC)を管理するためのサポートを提供します。ユーザー認証情報を ADC で使用できるようにするには、gcloud auth application-default login を実行します。

gcloud auth application-default login

この認証情報は gcloud CLI では使用されません。詳細については、ADC の認証情報を指定する方法アプリケーションのデフォルト認証情報の仕組みをご覧ください。

次のステップ

  • 認証と Google Cloud の詳細については、認証の概要をご覧ください。
  • gcloud CLI のカスタマイズ方法については、gcloud CLI のプロパティをご覧ください。
  • gcloud CLI の名前付きプロパティ セットを管理する方法については、gcloud CLI の構成をご覧ください。