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 クラスターで実行されているコンテナ化されたアプリケーションとやり取りが行えます。

仕組み

  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 関数へのアクセスを許可します。