結論:Amazon Cognitoは「SSOそのもの」ではなく、「認証基盤としてSSOを実現できるサービス」
AWS Certified Cloud Practitioner では、サービス名そのものを暗記するよりも、「何をするサービスか」を切り分けて理解することが重要です。
Amazon Cognitoは、Webアプリやモバイルアプリ向けの認証・認可・ユーザー管理を提供するAWSサービスです。一方、SSO(Single Sign-On)は、1回のログインで複数のサービスやアプリを利用できる仕組みを指す一般用語です。
そのため、Amazon Cognito = SSOそのものではありません。ただし、Amazon Cognito を使って複数アプリの認証を共通化すれば、結果としてSSOのような体験を実現できます。
まず用語を短く整理
- 認証(Authentication): 「その人が誰か」を確認すること。例:IDとパスワードでログインする。
- 認可(Authorization): 「何をしてよいか」を決めること。例:ログイン後に特定の画面だけ見られるようにする。
- SSO: 一度のサインインで複数のアプリやサービスを利用しやすくする仕組み。
- IdP(Identity Provider): 認証を担当する仕組みやサービス。例:Cognito、社内認証基盤、外部のOIDC/SAMLプロバイダ。
Amazon Cognitoとは何か
Amazon Cognito は、アプリケーションにサインアップ・サインイン機能を追加したり、外部のIDプロバイダと連携したりできるサービスです。AWS公式ドキュメントでも、Webアプリやモバイルアプリ向けの認証・認可・ユーザー管理サービスとして説明されています。
Cloud Practitionerで最低限押さえたい2つの構成要素
| 機能 | 役割 | 試験での見分け方 |
|---|---|---|
| User Pool | アプリ利用者のユーザー登録、ログイン、MFA、トークン発行を担う | 「アプリのログイン機能」「会員管理」「サインアップ/サインイン」ならこちら |
| Identity Pool | 認証済みユーザーやゲストユーザーに一時的なAWS認証情報を付与する | 「ログインしたユーザーにS3などAWSリソースへのアクセス権を与えたい」ならこちら |
つまり、User Pool はアプリのログイン基盤、Identity Pool はAWSリソース利用のための一時的な認証情報付与、という理解が基本です。
なぜ「Cognito = SSO」ではないのか
SSOはあくまで利用体験や認証方式の概念です。対して Amazon Cognito は、認証機能を実装するためのAWSの具体的なサービスです。
たとえば、1つの Cognito User Pool を複数のアプリで共通利用すれば、ユーザーは共通の認証基盤でサインインできます。この構成はSSO的に見えますが、正確には「Cognito を使ってSSOを実現している」のであって、Cognito自体がSSOという言い方は少し粗い整理です。
Amazon CognitoでできるSSOのイメージ
次のようなケースを考えると理解しやすくなります。
- 同じ企業が運営する会員向けWebアプリA
- 同じ会員情報を使うモバイルアプリB
- サポートポータルC
これらが同じCognito User Poolを使って認証する構成なら、ユーザー管理を共通化できます。さらに、外部IDプロバイダやマネージドログイン画面を組み合わせれば、複数アプリにまたがるサインイン体験を統一しやすくなります。
この意味で、Amazon Cognito はSSOを構成するための有力な選択肢です。
外部IDプロバイダ連携も試験で重要
Amazon Cognito User Pool は、ソーシャルログインや SAML、OIDC のIDプロバイダと連携できます。つまり、Googleなどでサインインさせたい場合や、既存の企業認証基盤とつなぎたい場合にも使えます。
Cloud Practitioner では細かなプロトコル設定まで深掘りされにくいですが、「Cognito は外部IdP連携ができる」という高レベルの理解は重要です。
よく混同されるサービス:IAM Identity Center
試験対策では、Amazon Cognito と IAM Identity Center の違いを切り分けることが非常に大切です。
| サービス | 主な対象 | 覚え方 |
|---|---|---|
| Amazon Cognito | アプリのエンドユーザー | 「顧客向けアプリのログイン基盤」 |
| IAM Identity Center | 従業員などのワークフォースユーザー | 「AWSアカウントや業務アプリへの組織向けSSO」 |
たとえば、社内ユーザーが複数のAWSアカウントへシングルサインオンしたいという問題なら、第一候補は IAM Identity Center です。一般消費者向けWebアプリにログイン機能を実装したいなら、第一候補は Amazon Cognito です。
試験での典型的な見分け方
- モバイルアプリやWebアプリに簡単にログイン機能を追加したい
→ Amazon Cognito - GoogleやSAML/OIDCなど外部認証と連携したい
→ Amazon Cognito - ログインしたユーザーにS3などAWSリソースへの一時アクセス権を付与したい
→ Amazon Cognito Identity Pool - 従業員がAWSアカウントや業務アプリへSSOしたい
→ IAM Identity Center
ひっかけ対策の一言まとめ
- Cognito は認証サービス
- SSO は仕組み・方式の概念
- Cognito を使ってSSOを実現できる
- AWSアカウント向けの組織的なSSOは IAM Identity Center をまず疑う
直前復習用まとめ
Cloud Practitioner 向けに最短で整理すると、次の3点を押さえれば十分です。
- Amazon Cognito は、Web/モバイルアプリ向けの認証・認可・ユーザー管理サービス。
- SSOは概念であり、Cognitoそのものを指す言葉ではない。
- アプリ利用者向け認証は Cognito、組織内ユーザーのAWSアカウントSSOは IAM Identity Center と考えると整理しやすい。
参考URL(AWS公式)
- https://aws.amazon.com/jp/certification/certified-cloud-practitioner/
- https://docs.aws.amazon.com/cognito/
- https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools.html
- https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
- https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-managed-login.html
- https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html
- https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/what-is.html
