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を使って本人確認する
関連サービス
関連する比較記事
この用語には、まだ関連比較記事が登録されていません。
関連する構成図
タグ
最終更新日:2026-06-18