跳到主要內容
Security安全性中級CLF-C02SAA-C03

Cognito

Amazon Cognito

管理應用程式使用者註冊與登入的認證服務。

一句話說明

管理應用程式使用者註冊與登入的認證服務。

概要

處理使用者註冊、登入、認證權杖簽發的服務。作為 Web 應用或行動應用的認證基礎使用。

主要用途

  • 學習網站的登入功能
  • API Gateway 的 JWT 認證
  • 保護個別使用者的學習歷程

CLF-C02 考試重點

  • 用於使用者認證
  • 分為 User Pool 與 Identity Pool
  • 可整合 MFA 或外部 IdP

SAA-C03 考試重點

  • 可與 API Gateway 的 JWT Authorizer 整合
  • User Pool 用於認證,Identity Pool 用於 AWS 授權
  • 從權杖取得 userId 以控制資料存取

實際使用情境

Amazon Cognito 是為 Web 應用程式或行動應用程式加入**使用者認證、授權基礎**的 全代管服務。主要的構成元素有 2 個,角色不同。 **User Pool** 是管理使用者註冊、登入、密碼重設、MFA 的認證目錄。在認證成功後 發行 JWT(ID 權杖 / 存取權杖 / 重新整理權杖),回傳給用戶端。若與 API Gateway 的 JWT Authorizer 組合,可在閘道階段對抵達 Lambda 的請求進行認證檢查。 **Identity Pool(舊稱:聯合身分)** 對已認證的使用者(以 Cognito User Pool 或 Google / Facebook 等外部 IdP 認證者)配發臨時的 AWS 認證資訊(相當於 IAM 角色 的存取金鑰)。用於使用者直接存取 S3 儲存貯體或 DynamoDB 資料表的架構(從 Mobile SDK 直接呼叫 SDK 等)。 實作上重要的注意事項是,API 回傳的個人資料的所有權確認需使用 JWT 宣告的 `sub` (subject)。包含於請求 Body 或 URL 路徑的 `userId` 因可竄改,不可作為可信任的 識別碼使用。將 Lambda 授權器或 JWT Authorizer 驗證過的宣告作為後端授權邏輯 所使用的設計是必須的。 在 CLF-C02 中會以「用於應用程式的使用者認證的服務是哪個」「管理使用者登入的 代管服務是哪個」被出題。在 SAA-C03 中,User Pool 與 Identity Pool 的區分使用、 與 API Gateway 的 JWT Authorizer 整合、外部 IdP 聯合的設計會被出題。

官方文件

成本注意事項

  • 依 MAU 與進階功能計費
  • MVP 階段不建立登入,故非適用對象

安全性注意事項

  • 勿信任請求 Body 中的使用者 ID
  • 使用通過 JWT 驗證的 claims 進行本人確認

相關服務

相關比較文章

此術語尚未登錄相關比較文章。

相關架構圖

標籤

securityauthenticationuser-management

最後更新日: 2026-06-01