このページでは、アプリケーションのデフォルト認証情報(ADC)が認証情報を探す場所について説明します。ADC の仕組みを理解することで、ADC で使用されている認証情報と、その認証情報の検出方法を理解できます。
Application Default Credentials (ADC) は、アプリケーション環境に基づいて認証情報を自動的に検索するために、認証ライブラリが使用する手法です。認証ライブラリは、これらの認証情報を Cloud クライアント ライブラリと Google API クライアント ライブラリで使用可能にします。ADC を使用すると、 Google Cloud サービスと API に対するアプリケーションの認証方法を変更せずに、開発環境または本番環境でコードを実行できます。
ローカル ADC ファイルを生成する方法など、ADC に認証情報を指定する方法については、アプリケーションのデフォルト認証情報を設定するをご覧ください。
検索の順序
ADC は次のロケーションで認証情報を検索します。
GOOGLE_APPLICATION_CREDENTIALS
環境変数gcloud auth application-default login
コマンドを使用して作成された認証情報ファイル- 接続済みのサービス アカウント(メタデータ サーバーから返されます)
ADC が認証情報を確認する場所の順序は、各場所の相対的な優劣とは関係ありません。ADC に認証情報を指定する最適な方法については、アプリケーションのデフォルト認証情報を設定するをご覧ください。
GOOGLE_APPLICATION_CREDENTIALS 環境変数
GOOGLE_APPLICATION_CREDENTIALS
環境変数を使用して、認証情報の JSON ファイルのロケーションを指定できます。この JSON ファイルは、次のいずれかのタイプのファイルになります。
Workforce Identity 連携の認証情報構成ファイル
Workforce Identity 連携を使用すると、外部 ID プロバイダ(IdP)を使用して、 Google Cloudリソースにアクセスするユーザーを認証および認可できます。詳細については、Identity and Access Management(IAM)ドキュメントの Workforce Identity 連携をご覧ください。
Workload Identity 連携の認証情報構成ファイル
Workload Identity 連携を使用すると、外部 IdP を使用してワークロードの認証と認可を行い、Google Cloud リソースへのアクセスを許可できます。詳細については、Identity and Access Management(IAM)のドキュメントのクライアント ライブラリ、gcloud CLI、または Terraform を使用した認証をご覧ください。
サービス アカウント キー
サービス アカウント キーはセキュリティ上のリスクをもたらすため、推奨されません。他の認証情報ファイル形式とは異なり、不正使用されたサービス アカウント キーは不正な行為者によって追加情報なしに使用される可能性があります。詳細については、サービス アカウント キーの使用と管理のベスト プラクティスをご覧ください。
gcloud auth application-default login
コマンドを使用して作成された認証情報ファイル
gcloud auth application-default login
コマンドを実行して、ADC に認証情報を提供できます。このコマンドは、指定した認証情報(ユーザー アカウントまたはサービス アカウントの権限借用から取得した認証情報)を含む JSON ファイルを作成し、ファイル システム上の既知の場所に配置します。ロケーションはオペレーティング システムによって異なります。
- Linux、macOS:
$HOME/.config/gcloud/application_default_credentials.json
- Windows:
%APPDATA%\gcloud\application_default_credentials.json
gcloud CLI で ADC に提供する認証情報は、gcloud CLI が Google Cloudの認証に使用する認証情報とは異なります。この 2 つの認証情報の詳細については、gcloud CLI 認証構成と ADC 構成 をご覧ください。
デフォルトでは、ユーザーの認証情報で作成されたローカル ADC ファイルから生成されたアクセス トークンには、クラウド全体のスコープ https://www.googleapis.com/auth/cloud-platform
が含まれます。スコープを明示的に指定するには、gcloud auth application-default login
コマンドで –-scopes
フラグを使用します。
Google Cloud以外のサービス(Google ドライブなど)のスコープを追加するには、OAuth クライアント ID を作成して gcloud auth application-default login
コマンドに渡します。
–-client-id-file
フラグを使用して ID を指定し、
-–scopes
フラグを使用してスコープを指定します。
接続されたサービス アカウント
多くの Google Cloud サービスでは、 Google Cloud API にアクセスするための認証情報を提供するサービス アカウントを追加できます。ADC が GOOGLE_APPLICATION_CREDENTIALS
環境変数、またはローカル ADC 認証情報の既知の場所で使用できる認証情報を検出しない場合は、ADC はメタデータ サーバーを使用して、コードが実行されているサービスの認証情報を取得します。
Google Cloudの本番環境内で認証情報を見つける場合、接続されたサービス アカウントの認証情報を使用することが推奨の方法です。接続されたサービス アカウントを使用する手順は次のとおりです。
- ユーザーが管理するサービス アカウントを作成します。
- そのサービス アカウントに最小権限の IAM ロールを付与します。
- コードが実行されているリソースにサービス アカウントを接続します。
サービス アカウントの作成方法については、サービス アカウントの作成と管理をご覧ください。 サービス アカウントの接続方法については、サービス アカウントをリソースに接続するをご覧ください。サービス アカウントに必要な IAM ロールの決定については、事前定義ロールの選択をご覧ください。
次のステップ
- ADC に認証情報を指定する最適な方法を確認する。
- Cloud クライアント ライブラリを使用して認証する。
- 認証方法を確認する。
- クライアント ライブラリについて学習する。