Amazon Cognito とは
Amazon Cognito は、ウェブアプリケーションやモバイルアプリケーションの認証、許可、ユーザー管理をサポート
Amazon Cognito の主な 2 つのコンポーネントは、ユーザープールと ID プールです。
Amazon Cognito ユーザープールと ID プールを一緒に使用するケース

一般的な Amazon Cognito シナリオ
- ユーザープールによる認証
- ユーザープールを使用してサーバー側のリソースにアクセスする
- API Gateway および Lambda でユーザープールを使用してリソースにアクセスする
- ユーザープールと ID プールを使用して AWS のサービスにアクセスする
- サードパーティーを使用して認証を行い、ID プールを使用して AWS サービスにアクセスする
- Amazon Cognito を使用した AWS AppSync リソースへのアクセス
ユーザープールによる認証

認証に成功すると、ウェブやモバイルアプリケーションに Amazon Cognito よりユーザープールトークンが送信されます。これらのトークンを使用して、他の AWS のサービスへのアプリによるアクセスを許可する AWS 認証情報を取得したり、サーバー側のリソースへのアクセスや Amazon API Gateway へのアクセスを制御したりすることができます。
WEBIDFederationでトークンと一時認証情報を交換して使います。
ユーザープールを使用してサーバー側のリソースにアクセスする

こちらもトークンと一時認証情報を交換して使います。
API Gateway および Lambda でユーザープールを使用してリソースにアクセスする

API Gateway を介して API にアクセスすることをユーザーに許可できます。API Gateway は、成功したユーザープール認証からトークンを検証し、Lambda 関数や独自の API などのリソースへのアクセスをユーザーに許可するためにトークンを使用します。
ユーザープールと ID プールを使用して AWS のサービスにアクセスする

まずユーザープールで認証を行う。そのあとにIDプールでトークンと一時認証情報を交換。それを使ってAWSリソースにアクセスする。
こちらの記事でフェデレーションについて扱っています。
サードパーティーを使用して認証を行い、ID プールを使用して AWS サービスにアクセスする

ユーザープールの代わりに外部Idpを使用。そのあとは一緒です。
Amazon Cognito を使用した AWS AppSync リソースへのアクセス

Amazon Cognito のユーザープールと ID プールの違いは何ですか?
ユーザープールでは認証 (アイデンティティの検証) ができます。ユーザープールを使用すると、アプリユーザーはユーザープールからのサインインや、サードパーティーのアイデンティティプロバイダー (IdP) を介した連携ができます。
ID プールでは認可 (アクセスコントロール) ができます。ID プールを使用すると、ユーザーに一意の ID を作成して、他の AWS サービスへのアクセスを許可できます。
参考文献
- Amazon Cognito とは
- Amazon Cognito のユーザープールと ID プールの違いは何ですか?