Security
D1 · Secure
~1 phút đọc

Amazon Cognito — User Pools & Identity Pools

Cognito cung cấp authentication (User Pool) và authorization (Identity Pool). Phân biệt rõ hai thành phần và khi nào dùng.

cognito
user-pool
identity-pool
federation
authentication

Sơ đồ tổng quan

Đang tải sơ đồ…

Tổng quan

Cognito có 2 thành phần chính: User Pool (quản lý user, authentication, trả JWT) và Identity Pool (đổi token thành temporary AWS credentials). Có thể dùng riêng hoặc kết hợp.

User Pool (Authentication)

  • Managed user directory: sign-up, sign-in, MFA, password policy.
  • Federation: Google, Facebook, Apple, SAML 2.0, OIDC.
  • Hosted UI: trang login sẵn, custom domain.
  • Triggers: Lambda triggers cho pre/post sign-up, pre/post authentication, custom message.
  • Output: JWT tokens (ID token, Access token, Refresh token).
  • Tích hợp: API Gateway authorizer, ALB authentication action.

Identity Pool (Authorization)

  • Đổi token (User Pool JWT, Google, Facebook, SAML) → temporary AWS credentials (STS).
  • Authenticated role vs Unauthenticated (guest) role.
  • Fine-grained access: dùng policy variable ${cognito-identity.amazonaws.com:sub} để giới hạn user chỉ truy cập data của mình.
  • Use case: mobile app cần truy cập S3, DynamoDB trực tiếp.

User Pool vs Identity Pool

  • User Pool = WHO are you? (authentication, JWT).
  • Identity Pool = WHAT can you do on AWS? (authorization, AWS credentials).
  • Combo phổ biến: User Pool authenticate → Identity Pool cấp AWS credentials.
  • Chỉ cần User Pool nếu app chỉ gọi API Gateway (JWT authorizer đủ).
Info
Đề thi: 'mobile app cần upload ảnh lên S3 với quyền riêng mỗi user' → Cognito User Pool + Identity Pool + S3 policy với ${cognito-identity...sub}.
Nội dung liên quan
Quiz liên quan
Flashcards liên quan