OIDC フェデレーション - AWS Identity and Access Management

OIDC フェデレーション

ワークフローを使用して Amazon S3 や DynamoDB にアクセスする GitHub Actions などの AWS リソースにアクセスするアプリケーションを作成するとします。

このようなワークフローを作成する場合、AWS アクセスキーで署名される必要のある AWS サービスに対してリクエストを実行します。ただし、AWS 外部のアプリケーションには AWS 認証情報を長期間保存しないことを強くお勧めします。代わりに、「OIDC フェデレーション」を使用して、必要に応じて一時的な AWS セキュリティ認証情報を動的に要求するようにアプリケーションを設定します。提供される一時的な認証情報は、アプリケーションで必要とされるタスクの実行に必要なアクセス許可のみを持つ AWS ロールにマッピングされます。

OIDC フェデレーションを使用すると、カスタムサインインコードを作成したり独自のユーザー ID を管理したりする必要はありません。代わりに、GitHub Actions などのアプリケーションやその他の OpenID Connect (OIDC) 互換 IdP で OIDC を使用して AWS での認証を行うことができます。JSON Web トークン (JWT) として知られる認証トークンが受け取られたら、AWS アカウント の特定のリソースを使用するアクセス許可を持つ IAM ロールにマップされる AWS の一時的なセキュリティ認証情報に変換されます。IdP を使用すると、アプリケーションで長期的なセキュリティ認証情報を埋め込んで配布する必要がないため、AWS アカウント の安全性の維持に役立ちます。

ほとんどのシナリオでは、Amazon Cognito を使用することをお勧めします。Amazon Cognito は ID ブローカーとして機能し、ユーザーの代わりに多くのフェデレーション作業を行うからです。詳細については、以下のセクション「モバイルアプリのための Amazon Cognito の使用」を参照してください。

注記

OpenID Connect (OIDC) ID プロバイダーによって発行された JSON ウェブトークン (JWT) では、トークンの有効期限を指定する有効期限が exp クレームに含まれています。IAM は、OpenID Connect (OIDC) Core 1.0 標準で許可されているように、クロックスキューを考慮し、JWT で指定された有効期限を 5 分間延長します。つまり、有効期限後 5 分以内に IAM が受信した OIDC JWT は受け入れられ、評価と処理が行われます。