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