このドキュメントでは、Workload Identity 連携 を Google Cloud 認証ライブラリ(auth ライブラリ)で使用して、 AWS、Microsoft Azure、OpenID Connect(OIDC)または SAML 2.0 をサポートするプロバイダなどのサードパーティ ID プロバイダからワークロードを認証する方法について説明します。
Workload Identity 連携を使用すると、 Google CloudGoogle Cloud の外部で実行されているアプリケーションがサービス アカウント キーを使用せずにリソースに アクセス できます。Google 認証ライブラリは、外部認証情報を 有効期間の短い Google Cloud アクセス トークンと交換することで、これを実現します。
認証用の外部認証情報は、次の方法で取得できます。
- 一般的な設定の標準メカニズム。
- 独自のコードを記述する必要がある複雑なワークフロー用の カスタム認証情報サプライヤ。
始める前に
必要な API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法について学習する。ID プロバイダとの Workload Identity 連携を構成します。
標準の認証情報メカニズムを使用して認証する
一般的にサポートされているサードパーティ ID プロバイダの場合は、 Google Cloud 認証ライブラリの組み込み機能を使用して、 認証情報構成ファイルを生成することでワークロードを認証できます。このファイルは、認証ライブラリが外部プロバイダから ID を連携するために必要な情報を提供します。
通常、GOOGLE_APPLICATION_CREDENTIALS 環境変数を使用して読み込まれる認証情報構成ファイルは、次のいずれかの方法でサードパーティのサブジェクト トークンを取得するように認証ライブラリに指示できます。
- ファイル提供: ライブラリは、ローカル ファイルからサブジェクト トークンを読み取ります。 別のプロセスで、このファイルに有効期限が切れていない有効なトークンが含まれていることを確認する必要があります。
- URL 提供: ライブラリは、指定されたローカル URL エンドポイントにリクエストを送信してサブジェクト トークンを取得します。
- 実行可能ファイル提供: ライブラリは、構成された実行可能コマンドを実行します。 実行可能ファイルの標準出力には、サブジェクト トークンが含まれている必要があります。
特定のプロバイダの認証情報構成ファイルを生成します。
認証情報構成ファイルを使用して認証します。
Google Cloud クライアント ライブラリが 認証情報構成ファイルを自動的に検出して使用できるようにするには、
GOOGLE_APPLICATION_CREDENTIALS環境変数を生成された JSON ファイルのパスに設定します。シェルで環境変数をエクスポートします:
bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/config.json環境変数を設定すると、クライアント ライブラリが認証フローを処理します。
次のコードサンプルは、認証済み API Google Cloud に対して呼び出しを行う方法を示しています。
Node.js
IAM のクライアント ライブラリをインストールして使用する方法については、 IAM クライアント ライブラリをご覧ください。 詳細については、IAM Node.js API のリファレンス ドキュメントをご覧ください。
IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。
IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。
IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。