メインコンテンツへ移動
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(旧称: フェデレーション ID)** は、認証済みユーザー(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ではログインを作らないため対象外

セキュリティ注意点

  • ユーザーIDをリクエストBodyから信用しない
  • JWT検証済みのclaimsを使って本人確認する

関連サービス

関連する比較記事

この用語には、まだ関連比較記事が登録されていません。

関連する構成図

タグ

securityauthenticationuser-management

最終更新日:2026-06-18