View a markdown version of this page

AWS ID を外部サービスにフェデレーションする - AWS Identity and Access Management

AWS ID を外部サービスにフェデレーションする

IAM アウトバウンド ID フェデレーションを使用すると、AWS ワークロードは、長期間有効な認証情報を保存しなくても外部サービスに安全にアクセスできます。AWS ワークロードは、GetWebIdentityToken API を呼び出すことで、AWSSecurity Token Service (AWS STS) から有効期間の短い JSON ウェブトークン (JWT) をリクエストできます。これらのトークンは、暗号化によって署名され、パブリックに検証可能であり、AWS ワークロードの ID を外部サービスにアサートする包括的な一連のクレームを含んでいます。これらのトークンは、さまざまなサードパーティーのクラウドプロバイダー、SaaS プラットフォーム、セルフホストのアプリケーションで使用できます。外部サービスは、既知のエンドポイントで公開されている AWS の検証キーを使用してトークンの信頼性を検証し、トークンの情報を使用して認証と承認の判断を下します。

アウトバウンド ID フェデレーションを使用すると、API キーやパスワードなど有効期間の長い認証情報を、アプリケーションコードや環境変数に保存する必要がなくなり、セキュリティ体制が向上します。IAM ポリシーを使用して、トークン生成へのアクセスを制御し、署名アルゴリズムや許可された対象者、期間などのトークンプロパティを適用できます。すべてのトークンリクエストは AWS に記録され、セキュリティモニタリングとコンプライアンスレポートの完全な監査証跡を提供します。カスタムのクレームとして表示されるタグを使用して、トークンをカスタマイズすることもできます。それにより、外部サービスはきめ細かい、属性ベースのアクセスコントロールを実装することができます。

一般的なユースケース

アウトバウンド ID フェデレーションを使用すると、AWS ワークロードは次のことを安全に実行できます。

  • 外部のクラウドプロバイダーのリソースとサービスにアクセスできます。例えば、データを処理する Lambda 関数は、外部のクラウドプロバイダーのストレージサービスに結果を書き込んだり、それらのデータベースをクエリしたりできます。

  • 分析、データ処理、モニタリングなどのために、外部の software-as-a-service (SaaS) プロバイダーと統合できます。例えば、Lambda 関数はオブザーバビリティプラットフォームにメトリクスを送信できます。

  • AWS、外部のクラウドプロバイダー、オンプレミスのデータセンターのいずれかでホストされている独自のアプリケーションで認証を行い、安全なハイブリッドおよびマルチクラウドのアーキテクチャを実現できます。例えば、AWS ワークロードは、オンプレミスの Kubernetes クラスターで実行されているコンテナ化されたアプリケーションとやり取りが行えます。

仕組み

Lambda 関数、セキュリティトークンサービス、外部サービス、および OIDC 発行元 URL 検出エンドポイント間の認証フロー。
  1. Lambda 関数は、GetWebIdentityToken API を呼び出して、AWS Security Token Service (AWS STS) から JSON ウェブトークン (JWT) をリクエストします。

  2. AWS STS は、このリクエストを検証し、署名付き JWT を Lambda 関数に返します。

  3. Lambda 関数は、この JWT を外部サービスに送信します。

  4. 外部サービスは、トークンから発行者 URL を抽出し、信頼できる既知の発行者と一致することを確認し、OIDC 検出エンドポイントから AWS の検証キーとメタデータを取得します。

  5. 外部サービスは、この検証キーを使ってトークンの署名を検証し、有効期限、サブジェクト、対象者などのクレームを検証します。

  6. 検証に成功すると、外部サービスは Lambda 関数へのアクセスを許可します。