0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Cognito】User PoolとIdentity Poolについて

0
Posted at

そもそもCognitoってUser PoolとIdentity Poolがあるけど、それぞれどんな役割なのかよく理解できてませんでした。
なので、備忘録も兼ねて上記の違いについて記載します。
ちなみに、本文章はAmazon Q Developer for IDEを利用して作成しています。
また、AWS公式ドキュメントを参照するようにMCPサーバを設定してます。

CognitoにおけるUser PoolとIdentity Poolの違い

User Pool(ユーザープール)

役割

ユーザー認証(Authentication)

特徴

  • ユーザーディレクトリとして機能し、ユーザーの登録・サインイン・認証を管理
  • JWTトークン(ID token、Access token)を発行
  • アプリやAPIへのユーザー認証を提供
  • サードパーティIdP(Google、Facebook、SAML、OIDCなど)との連携が可能
  • MFA、パスワードポリシー、カスタム認証フローなどのセキュリティ機能を提供
  • 単独で使用可能 - Identity Poolとの統合は必須ではない

使用例

ユーザーがアプリにログインし、そのユーザー情報を管理したい場合


Identity Pool(アイデンティティプール)

役割

AWSリソースへのアクセス認可(Authorization)

特徴

  • 一時的なAWS認証情報を発行
  • 認証済みユーザーまたは匿名ユーザーにAWSリソースへのアクセス権限を付与
  • IAMロールとポリシーを使用してアクセス制御
  • User Poolのトークンを含む様々なIdPからのトークンを受け入れ可能
  • ゲストアクセス(未認証ユーザー)もサポート
  • 単独で使用可能 - User Poolとの統合は必須ではない

使用例

認証されたユーザーがS3バケットやDynamoDBに直接アクセスする必要がある場合


連携して使用する場合の流れ

  1. ユーザーがUser Poolでサインイン → OAuth 2.0トークンを取得
  2. アプリがUser PoolのトークンをIdentity Poolに渡す
  3. Identity PoolがAWS STSを通じて一時的なAWS認証情報を発行
  4. ユーザーがその認証情報でS3、DynamoDBなどのAWSサービスにアクセス

比較表

項目 User Pool Identity Pool
主な目的 認証(Authentication) 認可(Authorization)
発行するもの JWTトークン AWS一時認証情報
対象 アプリ・API AWSリソース
独立使用 可能 可能

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?