Amazon Cognito 完全ガイド|User Pool と Identity Pool の使い分け

Amazon Cognito は Web / モバイルアプリのユーザー認証・認可をフルマネージドで提供するサービス。User Pool(サインアップ・サインイン管理)と Identity Pool(一時 AWS 認証情報の発行)の 2 機能を組み合わせて、認証から AWS ...

Web/モバイルアプリの認証・認可サービス。User Pool(ユーザー管理)と Identity Pool(権限委譲)の 2 機能。


1. 概要(端的に)

Amazon Cognito は Web / モバイルアプリのユーザー認証・認可をフルマネージドで提供するサービス。User Pool(サインアップ・サインイン管理)と Identity Pool(一時 AWS 認証情報の発行)の 2 機能を組み合わせて、認証から AWS リソースアクセス委譲まで提供する。


2. 何ができるか

User Pool(ユーザーディレクトリ)

  • サインアップ・サインイン:メール / SMS / OAuth / SAML
  • ソーシャルログイン:Google / Facebook / Apple
  • MFA:TOTP・SMS
  • パスワードポリシー
  • JWT トークン発行:ID トークン・アクセストークン

Identity Pool(権限委譲)

  • 一時 AWS クレデンシャル発行:認証済みユーザーに STS トークン
  • ゲストアクセス:未認証ユーザーにも限定 AWS 権限
  • 複数 ID プロバイダ統合

3. 特徴

観点特徴
追加料金MAU(月間アクティブユーザー)課金、最初の 50,000 MAU 無料
MFA 対応TOTP / SMS
ソーシャル統合Google / Facebook / Apple / Amazon
エンタープライズ統合SAML / OIDC(AD・Okta 等)
対応 SDKiOS / Android / JavaScript / Amplify

User Pool vs Identity Pool

観点User PoolIdentity Pool
機能ユーザー管理・認証一時 AWS 認証情報発行
用途アプリログインAWS リソース直接アクセス
トークンJWTSTS(IAM ロール)

4. 仕組み

Cognito は アプリの認証層 として機能する。

User Pool の動作

  1. ユーザーがアプリでサインアップ
  2. メール / SMS で確認コード
  3. サインイン → JWT トークン取得
  4. アプリは JWT で API 呼び出し(API Gateway / ALB が JWT を検証)

Identity Pool の動作

  1. User Pool / Google / Facebook で認証
  2. Identity Pool に認証トークンを送る
  3. Identity Pool が IAM Role を AssumeRole
  4. 一時 AWS クレデンシャル発行
  5. アプリが直接 AWS(S3 / DynamoDB)アクセス

統合パターン

[アプリ]
  ↓ サインアップ・サインイン
[User Pool]
  ↓ JWT トークン
[Identity Pool]
  ↓ 一時 AWS クレデンシャル
[S3 / DynamoDB](直接アクセス)

5. ユースケース

ユースケース 1:Web/モバイルアプリの認証

React / iOS アプリのユーザー管理。

ユースケース 2:ソーシャルログイン

Google サインイン統合。

ユースケース 3:API Gateway 認証

API Gateway + Cognito で認証必須 API。

ユースケース 4:マルチテナント SaaS

User Pool でテナント別ユーザー管理。

ユースケース 5:モバイルアプリから直接 S3

Identity Pool でアプリから直接 S3 にアップロード。


6. 関連用語

  • API-Gateway — Cognito Authorizer
  • Lambda — トリガー(カスタム認証フロー)
  • ALB — Cognito 認証統合
  • IAM — Identity Pool が連携するロール

7. 関連サイト

AWS 公式


🎓 試験での出題傾向

試験重要度主な出題パターン
CLF認証サービスの概念
SAAサーバーレス認証設計
DVAAPI Gateway 統合実装(頻出
SOA出題稀