1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Cloud Application Default Credentials (ADC) の整理と忘備録

Last updated at Posted at 2025-09-10

Google Cloudにて、Application Default Credentials (ADC) にハマってしまったので、ADCの整理と忘備録として、まとめておきます。

はじめに

Application Default Credentials (ADC) の整理と忘備録ですが、対象読者は、以下を想定しています。

  • Google Cloudで開発を行っており、認証周りで困った経験がある開発者の方

3行まとめ

  • Application Default Credentials (ADC) は環境変数 → 認証ファイル → サービスアカウントの順で認証情報を検索する
  • GOOGLE_APPLICATION_CREDENTIALS が設定されていると、それが最優先で使用される
  • 環境変数の確認・削除は、echounsetコマンドを使い、確認しながら行うこと

Application Default Credentials (ADC) とは?

Application Default Credentials (ADC) は、Google Cloud サービスにアクセスする際の認証を自動化する仕組みです。開発しているアプリケーションのREST APIなどを通して、Cloud クライアント ライブラリ、Google API クライアント ライブラリを利用する際に、環境に応じて最適な認証情報を自動で選択・使用してくれます。

ローカル開発環境、コンテナ環境などコードが実行されている環境ごとに設定が必要となります。

2種類の認証情報

今回はローカル開発環境において、ハマってしまいました。
Application Default Credentials (ADC) は、ユーザー認証情報とサービス アカウント認証情報の2種類を活用できます。

Googleアカウントを利用する場合は、Google Cloud CLIを通して、gcloud auth application-default login を実行することで、Googleアカウントに紐づけられるアカウントの認証情報を利用できます。

一方で、サービスアカウントを利用する場合は、サービスアカウントの権限借用を使用するか、サービスアカウントキーを使用することになります。

これまでサービスアカウントを借用して、利用していましたが、セキュリティ上の懸念からGoogleアカウントの利用へ切り替えることになりました。
Googleアカウントにて、アカウント認証情報を取得して、実行したのですが、認証情報を取得できていない状況でした。

ADCの認証情報の検索手順

検索の順序は、以下になります。

  1. GOOGLE_APPLICATION_CREDENTIALS 環境変数
  2. gcloud auth application-default login コマンドを使用して作成された認証情報ファイル
  3. 接続済みのサービスアカウント

今回の問題は、既に設定されていたGOOGLE_APPLICATION_CREDENTIALS 環境変数を認証情報と利用しており、gcloud auth application-default login にて生成されたJSONファイルの情報を全く利用していない状況でした。

GOOGLE_APPLICATION_CREDENTIALS を書き換える

以下の手順で修正しました。

  1. echo $GOOGLE_APPLICATION_CREDENTIALSにてキーを確認する
  2. unset GOOGLE_APPLICATION_CREDENTIALS にて削除
  3. export GOOGLE_APPLICATION_CREDENTIALS = "XXXX"として設定する

書き換えることで、gcloud auth application-default login にて生成されたJSONファイルの認証情報を利用してくれるようになりました。
ただ、ローカル開発環境から、サービスアカウントを利用して、Google API クライアント ライブラリを使用しているケースもあるので、この辺りは、整理する必要があります。

サービスアカウントからApplication Default Credentials (ADC) への乗り換え時には、注意が必要

今回は、ドキュメントを確認することでシンプルに解決できました。
認証周りの知識に疎いので、この辺りは、今後もっと整理していかないといけないです。
同時に、Application Default Credentials (ADC) を初めて利用したのですが、かなり便利だと感じました。
まだ、整備しきれていない部分もあるので、サービスアカウントからの切り替えなども含めて、機会があれば、今後も追記していきたいと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?