アプリケーションのデフォルト認証情報の仕組み

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このページでは、アプリケーションのデフォルト認証情報(ADC)が認証情報を探す場所について説明します。ADC の仕組みを理解することで、ADC で使用されている認証情報と、その認証情報の検出方法を理解できます。

ADC は、アプリケーション環境に基づいて認証情報を自動的に検索し、その認証情報を Google Cloud APIs の認証に使用するために、Cloud クライアント ライブラリと Google API クライアント ライブラリで使用されるストラテジです。ADC を設定してクライアント ライブラリを使用すると、Google Cloud サービスと API に対するアプリケーションの認証方法を変更せずに、開発環境または本番環境でコードを実行できます。

ADC に認証情報を指定する最適な方法については、アプリケーションのデフォルト認証情報の認証情報を提供するをご覧ください。

検索の順序

ADC は次の場所で認証情報を検索します。

  1. GOOGLE_APPLICATION_CREDENTIALS 環境変数
  2. Google Cloud CLI で設定されたユーザー認証情報
  3. 接続されたサービス アカウント(メタデータ サーバーから提供)

GOOGLE_APPLICATION_CREDENTIALS 環境変数

GOOGLE_APPLICATION_CREDENTIALS 環境変数を使用して、認証情報の JSON ファイルの場所を指定できます。この JSON ファイルは、次のいずれかのタイプのファイルになります。

  • Workload Identity 連携の認証情報構成ファイル

    Workload Identity 連携を使用すると、外部 ID プロバイダを使用して Google Cloud リソースにアクセスできます。詳細については、Identity and Access Management(IAM)のドキュメントのクライアント ライブラリ、gcloud CLI、または Terraform を使用した認証をご覧ください。

  • サービス アカウント キー

    サービス アカウント キーはセキュリティ上のリスクをもたらすため、推奨されません。他の認証情報ファイル形式とは異なり、不正使用されたサービス アカウント キーは不正な行為者によって追加情報なしに使用される可能性があります。詳細については、サービス アカウント キーの使用と管理のベスト プラクティスをご覧ください。

gcloud CLI で設定されているユーザー認証情報

Google アカウントの認証情報を使用するように ADC を設定するには、gcloud auth application-default login コマンドを実行します。このコマンドは、認証情報を含む JSON ファイルをファイル システム上の既知の場所に配置します。オペレーティング システムによって場所が異なります。

  • Linux / macOS: $HOME/.config/gcloud/application_default_credentials.json
  • Windows: %APPDATA%\gcloud\application_default_credentials.json

gcloud CLI と ADC の使用方法については、gcloud 認証情報のタイプをご覧ください。

接続されたサービス アカウント

Google Cloud サービスの多くは、Google Cloud APIs にアクセスするための認証情報を提供するサービス アカウントを追加できます。ADC が GOOGLE_APPLICATION_CREDENTIALS 環境変数または Google アカウントの認証情報の既知の場所で使用できる認証情報を検出しない場合は、メタデータ サーバーを使用してコードが実行されているサービスの認証情報を取得します。

サービス アカウントの接続をサポートする Google Cloud リソースでアプリケーションが実行されている場合は、接続されたサービス アカウントを使用して認証情報を提供する必要があります。接続されたサービス アカウントを使用する手順は次のとおりです。

  1. ユーザーが管理するサービス アカウントを作成します。
  2. そのサービス アカウントに最小権限の IAM ロールを付与します。
  3. コードが実行されているリソースにサービス アカウントを接続します。

この構成は、本番環境で実行されるアプリケーションに適しています。

サービス アカウントの接続方法については、サービス アカウントをリソースに接続するをご覧ください。サービス アカウントに必要な IAM ロールの決定については、事前定義ロールの選択をご覧ください。

次のステップ