

# AWS ID を外部サービスにフェデレーションする
<a name="id_roles_providers_outbound"></a>

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

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

## 一般的なユースケース
<a name="outbound-federation-use-cases"></a>

アウトバウンド ID フェデレーションを使用すると、AWS ワークロードは次のことを安全に実行できます。
+ 外部のクラウドプロバイダーのリソースとサービスにアクセスできます。例えば、データを処理する Lambda 関数は、外部のクラウドプロバイダーのストレージサービスに結果を書き込んだり、それらのデータベースをクエリしたりできます。
+ 分析、データ処理、モニタリングなどのために、外部の software-as-a-service (SaaS) プロバイダーと統合できます。例えば、Lambda 関数はオブザーバビリティプラットフォームにメトリクスを送信できます。
+ AWS、外部のクラウドプロバイダー、オンプレミスのデータセンターのいずれかでホストされている独自のアプリケーションで認証を行い、安全なハイブリッドおよびマルチクラウドのアーキテクチャを実現できます。例えば、AWS ワークロードは、オンプレミスの Kubernetes クラスターで実行されているコンテナ化されたアプリケーションとやり取りが行えます。

## 仕組み
<a name="outbound-federation-how-it-works"></a>

![Lambda 関数、セキュリティトークンサービス、外部サービス、および OIDC 発行元 URL 検出エンドポイント間の認証フロー。](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/outbound-use-cases.png)


1. Lambda 関数は、[GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html) API を呼び出して、AWS Security Token Service (AWS STS) から JSON ウェブトークン (JWT) をリクエストします。

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

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

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

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

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