このドキュメントでは、Workload Identity 連携と認証ライブラリ(auth ライブラリ)を使用して、AWS、Microsoft Azure、OpenID Connect(OIDC)または SAML 2.0 をサポートするプロバイダなどのサードパーティ ID プロバイダからワークロードを認証する方法について説明します。 Cloud de Confiance
Workload Identity 連携を使用すると、 Cloud de Confianceの外部で実行されているアプリケーションが、サービス アカウント キーを使用せずに Cloud de Confiance リソースにアクセスできます。Google 認証ライブラリは、外部認証情報を有効期間の短い Cloud de Confiance アクセス トークンと交換することで、これを実現します。
認証では、次の方法で外部認証情報を取得できます。
- 一般的な設定のための標準メカニズム。
- 独自のコードを記述する必要がある複雑なワークフロー用のカスタム認証情報サプライヤー。
始める前に
必要な API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。ロールを付与する方法を確認する。ID プロバイダとの Workload Identity 連携を構成します。
標準の認証情報メカニズムを使用して認証する
一般的にサポートされているサードパーティ ID プロバイダの場合は、Cloud de Confiance auth ライブラリの組み込み機能を使用して、認証情報構成ファイルを生成してワークロードを認証できます。このファイルには、認証ライブラリが外部プロバイダから 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環境変数を設定すると、クライアント ライブラリが認証フローを処理します。
次のコードサンプルは、 Cloud de Confiance by S3NS API への認証済み呼び出しを行う方法を示しています。
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 連携について学習する。