Amazon Cognito(コグニート)とは?料金・できること・使い方を初心者向けにわかりやすく解説
Amazon Cognito(コグニート)は、Amazon Web Services(AWS)が提供する認証・ユーザー管理サービスです。読み方は「コグニート」で、Web/モバイルアプリのサインアップ・サインイン・アクセス制御を、自前で実装することなく短時間で組み込めます。正式にはCIAM(カスタマーアイデンティティ&アクセス管理)サービスに分類され、多要素認証(MFA)やソーシャルログイン、パスワードレス認証などを標準で利用できます。
この記事では、Amazon Cognitoの読み方と意味から、できること・料金・使い方、そして混同しやすいIAMやIAM Identity Center(旧AWS SSO)との違いまでを、初心者にもわかりやすい順序で整理します。
目次
まとめ
Amazon Cognito(コグニート)は、アプリのユーザー認証を短時間で安全に実装できるAWSのCIAMサービスです。読み方は「コグニート」、中核となるのはユーザープール(認証)とIDプール(認可)の2つで、2024年11月以降はLite/Essentials/Plusの3ティアから機能と料金を選べます。IAMやIAM Identity Center(旧AWS SSO)とは対象ユーザーが異なるため、用途で使い分けるのがポイントです。まずは小さなユーザープールを作って試し、必要に応じてMFAや脅威保護を加えていくとよいでしょう。料金や仕様は更新されるため、導入前にはAWS公式ドキュメントで最新情報を確認してください。
Amazon Cognitoの読み方と名称の意味
Amazon Cognitoの読み方は「コグニート」です。英語の発音は「カグニートウ」に近いものの、日本語の現場では一般に「コグニート」と呼ばれます。
名称はラテン語の cognitio(認知・知ること)に由来します。「ユーザーを認識し、本人であることを確認する」という認証サービスの役割を、そのまま名前に込めたものです。検索でこの単語を見かけて読み方や意味に迷った場合は、まず「コグニート=AWSの認証サービス」と覚えておけば十分です。
Amazon Cognitoでできること
Cognitoが担うのは、アプリの「ユーザー認証まわり」をまるごと肩代わりすることです。代表的にできることは次のとおりです。
- サインアップ/サインイン:会員登録、ログイン、パスワードリセットなどの基本機能を提供します。
- 多要素認証(MFA):SMS・TOTP(認証アプリ)・メールによる追加認証で、なりすましや不正ログインを防ぎます。
- ソーシャル/外部IdP連携:Google・Apple・FacebookなどのソーシャルログインやSAML/OIDCの外部IDプロバイダーと連携できます。
- パスワードレス認証:パスキー・メール・SMSによる、パスワードに依存しないログインに対応します。
- Managed Login(マネージドログイン):AWS側がホストするログイン画面を、ノーコードに近い形でブランドに合わせて調整できます。
- AWSリソースへのアクセス制御:認証済みユーザーにS3やDynamoDBなどへの一時的なアクセス権を発行します。
これらを自前で実装すると相応の工数とセキュリティ知識が必要になりますが、Cognitoを使えば設定とSDK連携で実現でき、開発者は本来のアプリ機能の開発に集中できます。
ユーザープールとIDプールの違い
Cognitoを理解するうえで欠かせないのが、ユーザープールとIDプール(アイデンティティプール)という2つのコンポーネントです。役割がはっきり分かれているため、まずは下の表で整理しましょう。
| 項目 | ユーザープール | IDプール |
|---|---|---|
| 主な役割 | ユーザーの認証(誰かを確かめる) | AWSリソースへの認可(権限を渡す) |
| 扱うもの | ユーザー情報・パスワード・MFA | 一時的なAWSクレデンシャル |
| 発行するもの | IDトークン/アクセストークン | IAMロールに基づく一時認証情報 |
| 代表的な用途 | アプリのログイン基盤 | S3アップロードなどの権限付与 |
ざっくり言えば、ユーザープールが「ログインの入口」、IDプールが「ログイン後にAWSの中で何をしてよいかを決める部分」です。多くのアプリではユーザープールだけで足りますが、認証済みユーザーにS3やDynamoDBへ直接アクセスさせたい場合は、ユーザープールとIDプールを組み合わせて使います。
Amazon Cognitoの料金体系
Cognitoの課金は、原則としてMAU(月間アクティブユーザー:その月にログインなどで認証された実ユーザー数)に対して発生します。アカウントを持っているだけでなく、実際に認証アクションを行ったユーザーが対象になる点が特徴です。
2024年11月から、ユーザープールにLite/Essentials/Plusの3つの機能ティア(機能プラン)が導入され、料金の考え方が新しくなりました。新規に作成するユーザープールはEssentialsがデフォルトで、必要に応じて各ティアを切り替えられます。
| ティア | 位置づけ | 主な機能 |
|---|---|---|
| Lite | 従来相当の基本プラン | サインアップ/サインイン、MFA、ソーシャルログイン |
| Essentials | 新規のデフォルト | Liteの機能+Managed Login、パスワードレス、アクセストークンのカスタマイズ等 |
| Plus | 高セキュリティ向け | Essentialsの機能+脅威保護(リスクベース認証、漏洩認証情報の検出など) |
料金体系を簡単にまとめると、最低限の認証だけならLite、Managed Loginやパスワードレスなど標準的な機能を使うならEssentials、不正ログイン対策まで強化したいならPlus、という整理になります。なお無料枠の上限や1MAUあたりの単価は改定されることがあり、リージョンによっても異なります。実際に試算する際は必ずAWS公式の料金ページとPricing Calculatorで最新の数値を確認してください。
IAM・IAM Identity Center(旧AWS SSO)との違い
「Cognito」「IAM」「IAM Identity Center」はいずれもAWSの認証・アクセス管理に関わるため混同されがちですが、対象とする利用者がまったく異なります。
| サービス | 主な対象 | 役割 |
|---|---|---|
| Amazon Cognito | アプリのエンドユーザー(顧客) | アプリのログイン・会員管理(CIAM) |
| IAM | AWSの開発者・運用者・サービス | AWSリソースへのアクセス権限の管理 |
| IAM Identity Center (旧AWS SSO) |
組織の従業員 | 複数AWSアカウント/SaaSへのシングルサインオン |
IAMは「AWSを操作する人やサービスの権限」を管理する仕組みで、アプリの一般ユーザーを登録する用途には使いません。一方、IAM Identity Centerは2022年7月にAWS Single Sign-On(AWS SSO)から名称変更されたサービスで、社員が複数のAWSアカウントや業務アプリへ一度のログインでアクセスするための社内向けSSO基盤です(技術・APIは旧AWS SSOと互換があります)。
つまり、アプリの会員機能を作るならCognito、社内のAWS権限管理ならIAM、従業員の業務アプリのSSOならIAM Identity Center、と覚えると区別しやすくなります。実際にはCognitoでエンドユーザーを認証し、IDプール経由でIAMロールを割り当てる、といった組み合わせもよく行われます。
Amazon Cognitoの使い方(導入の流れ)
初めて導入する場合の基本的な流れは、難しいものではありません。おおまかには次の4ステップで進みます。
- 1. ユーザープールを作成:AWSマネジメントコンソールでCognitoを開き、ユーザープールを作成。サインイン方法(メール・電話番号など)やMFAの要否を設定します。
- 2. アプリクライアントを登録:プールに対してアプリを登録し、コールバックURLや認証フローを設定します。
- 3. アプリに認証を組み込む:AWS Amplifyなどのライブラリやホスト型のManaged Loginを使い、サインアップ・サインインの画面と処理をアプリに組み込みます。
- 4. トークンを検証して制御:ログイン後に発行されるトークンをバックエンドで検証し、ユーザーがアクセスできる機能やデータを制御します。
ログイン画面の見た目を細かく整えたい場合は、Managed LoginやAmplify UIのコンポーネントを使ってカスタマイズします。日本語化やデザイン調整の具体的な手順は、Amplify UIライブラリを活用したCognito認証画面の日本語対応と実装手順もあわせて参考にしてください。
他のAWSサービスとの連携(API Gateway・Lambda)
Cognitoの強みは、AWSの他サービスと組み合わせたときに発揮されます。とくにAPIの保護と認証フローのカスタマイズで使われることが多く、代表的なのが次の2つです。
- API Gatewayのオーソライザー連携:CognitoのユーザープールをAmazon API Gatewayのオーソライザーとして設定すると、有効なトークン(JWT)を持つユーザーのリクエストだけがAPIに到達するように制御できます。バックエンド側で独自に検証処理を書かなくても、入口でアクセスを絞り込めるのが利点です。
- Lambdaトリガーによる認証フローのカスタマイズ:サインアップ前の入力検証、認証成功後のユーザー情報のDB登録、確認メール・SMSの文面の差し替えなど、標準フローでは足りない処理をAWS Lambdaで差し込めます。要件に合わせて認証の各段階に独自ロジックを追加できます。
このようにCognitoは単体の認証サービスにとどまらず、API GatewayやLambdaと組み合わせることで、セキュアでスケーラブルなバックエンドを少ない実装量で構築できます。
Amazon Cognitoの主な利用シーン
Cognitoは幅広いアプリで活用できますが、特に効果を発揮するのは次のようなケースです。
- B2C向けWeb/モバイルアプリ:ECサイトや会員制サービスで、安全なサインアップ・ログインを短期間で用意したい場合。
- エンタープライズアプリ:社員やパートナー向けに、外部IdPと連携した認証を一元管理したい場合。
- 高いセキュリティが求められるアプリ:MFAや脅威保護を組み合わせ、不正アクセスやなりすましを抑えたい場合。なりすまし防止をさらに強化したい場合は、顔認証を使うFaceLivenessDetectorコンポーネントの利用となりすまし防止の実践方法のような手法と組み合わせられます。
また、認証後の「誰が何にアクセスしてよいか」という認可をきめ細かく制御したい場合は、外部の認可サービスと組み合わせる方法もあります。詳しくはAserto Topazとは何か?基本的な概要とその仕組みで、Cognitoを含むIDプロバイダーとの連携例を解説しています。
Amazon Cognito導入時の注意点
手軽に始められる一方で、後から変更しづらい設定もあります。導入前に押さえておきたいポイントを3つ挙げます。
- サインイン属性は最初に決める:メールアドレス・電話番号・ユーザー名のうちどれをサインインIDにするかは、ユーザープール作成後に変更できません。要件を固めてから作成しましょう。
- 料金はMAUベースで試算する:課金は月間アクティブユーザー数に比例します。想定ユーザー数と使う機能ティア(Lite/Essentials/Plus)を決め、Pricing Calculatorで事前に試算しておくと、公開後のコストのぶれを抑えられます。
- セキュリティ機能はティア再編に注意:かつての「高度なセキュリティ機能(ASF)」に相当する脅威保護(リスクベース認証・漏洩認証情報の検出など)は、現在はPlusティアに整理されています(Essentialsが加えるのはManaged Loginやパスワードレスで、脅威保護は含みません)。不正ログイン対策が必要なら新規はPlusを前提に検討してください。
よくある質問(FAQ)
Q. Amazon Cognitoの読み方は?
「コグニート」です。ラテン語の cognitio(認知・知ること)が名称の由来で、ユーザーを認識・認証する役割を表しています。
Q. Cognitoは無料で使えますか?
MAU(月間アクティブユーザー)ベースの無料枠が用意されていますが、上限や対象機能はティア(Lite/Essentials/Plus)や時期によって変わります。最新の無料枠と単価はAWS公式の料金ページで確認してください。
Q. CognitoとIAMの違いは?
Cognitoはアプリのエンドユーザー(顧客)の認証、IAMはAWSを操作する開発者・運用者・サービスの権限管理です。対象とする利用者が異なります。
Q. AWS SSO(IAM Identity Center)とCognitoの違いは?
IAM Identity Center(旧AWS SSO)は社員向けに複数のAWSアカウントや業務アプリへのシングルサインオンを提供するサービスです。アプリの一般ユーザー向け認証であるCognitoとは用途が分かれます。
Q. CognitoはAuth0やFirebase Authenticationとどう違いますか?
いずれもアプリの認証を担うサービスですが、CognitoはAWSのエコシステムと統合しやすく、S3やLambdaなど他のAWSサービスと組み合わせる構成で運用コストを抑えやすいのが強みです。AWS中心の構成ならCognitoが有力な選択肢になります。
Q. ユーザープールとIDプールは両方必要ですか?
多くのアプリではユーザープールだけで足ります。IDプールが必要になるのは、認証済みユーザーにS3やDynamoDBなどAWSリソースへ直接アクセスさせたい場合です。要件に応じて使い分けてください。