Amazon Cognito とは何ですか?

Amazon Cognito は、デベロッパー中心で費用対効果の高い顧客 ID およびアクセス管理 (CIAM) サービスです。数百万人のユーザーにスケール可能な安全な ID ストアとフェデレーションオプションを提供します。Amazon Cognito は、ソーシャル ID プロバイダーや SAML または OIDC ベースの ID プロバイダーによるログインをサポートし、快適なカスタマーエクスペリエンスを実現するとともに、顧客とビジネスを保護するための高度なセキュリティ機能を提供します。さまざまなコンプライアンス基準をサポートし、オープンアイデンティティ標準 (OAuth2.0、SAML 2.0、OpenID Connect) で動作し、フロントエンドおよびバックエンドの開発リソースや SDK ライブラリの拡張エコシステムと統合します。

ID 管理

顧客がサイトで最初に体験するのは、多くの場合、自己登録のプロセスを通じてです。Amazon Cognito は、カスタマイズ可能なプリパッケージのホスト型ユーザーインターフェイスを提供し、迅速に市場に参入できるほか、完全なカスタム自己登録ソリューションを構築するための堅牢な API セットも提供します。ユーザーは、E メール、電話番号、またはユーザー名を使用してアプリケーションにサインアップできます。自己登録プロセスでは、ユーザーはカスタム属性を含むプロファイルデータの表示と更新が可能です。SMS メッセージや E メールによるパスワードリセットなど、セルフサービスオプションにより、ヘルプデスクへの問い合わせを削減できます。

Amazon Cognito は、何百万人ものユーザーにスケールするセキュアな ID ストア (ユーザープール) を提供します。ユーザープールは、直接サインアップするユーザーと、外部 ID プロバイダーでサインインするフェデレーションユーザーのユーザープロファイルデータを安全に保存します。
Amazon Cognito の ID ストアは、API ベースのユーザーリポジトリです。このリポジトリと API は、ユーザーごとに最大 50 のカスタム属性の保存、さまざまなデータ型のサポート、および長さと変異性の制約の実施をサポートしています。サインアッププロセスの完了前にユーザーが指定する必要がある必須属性を選択します。

ユーザーは、バッチインポートまたはジャストインタイム (JIT) 移行を使用して Amazon Cognito に移行することができます。バッチによるユーザーの移行では、CSV ファイルによるインポートプロセスを使用します。JIT 移行プロセスを使用すると、AWS Lambda トリガーによって移行プロセスがサインインワークフローに統合され、ユーザーのパスワードを保持できます。

Amazon Cognito では、マルチテナントがサポートされた B2B のやり取りが可能です。アプリケーションの統合、アクセスとパスワードのポリシー、完全なテナントの分離の適用を再利用することもできます。

ユーザー認証

Amazon Cognito には、ユーザーのサインアップとサインインのためのカスタマイズ可能な組み込み UI が用意されています。Amazon Cognito 向けの Android、iOS、JavaScript SDK を使用して、ユーザーのサインアップページやサインインページをアプリケーションに追加できます。

Amazon Cognito ユーザープールで MFA を有効にして、さらに顧客のセキュリティを強化できます。ユーザーは、SMS や、Google Authenticator などの Time-based One-time Password (TOTP) ジェネレータを使用して自分の ID を確認できます。Amazon Cognito は、異なるユーザーのプールに異なるパスワードルールを設定することもサポートしています。

Amazon Cognito はフェデレーションハブとして、Apple、Facebook、Google、Amazon などのソーシャル ID プロバイダーや、SAML や OIDC などのエンタープライズ ID プロバイダーを経由したユーザーのログインを可能にします。Amazon Cognito は、標準ベースの ID プロバイダーです。ユーザーが (ローカル認証または外部フェデレーションによって) Amazon Cognito にログインすると、OAuth/OIDC を使用してフェデレーションされたリソースにアクセスすることができます。

Amazon Cognito ユーザープールでは、Lambda 関数を使用して 1 回または複数回のチャレンジ - レスポンスサイクルに基づいてユーザーを認証する、カスタム認証フローを構築できます。このフローを使用して、カスタムチャレンジに基づくパスワードレス認証を実装することも、追加の要素としてカスタムチャレンジを使用することもできます。

Lambda トリガーを使用して、認証とサインアップの前後、またはトークン発行前などのユーザーライフサイクルステージなどで、Cognito の動作をカスタマイズできます。Lambda トリガーを使用して、さまざまな段階でユーザーに送信されるメッセージをカスタマイズしたり、サードパーティのメールや SMS プロバイダーと統合したりすることもできます。

アクセスコントロール

Amazon Cognito は、アプリケーションとの統合のラストマイルを保護します。Amazon Application Load Balancers (ALBs) と Amazon API gateways には、Amazon Cognito のトークンとスコープに基づいたアクセスを提供するポリシーエンフォースメントポイントが組み込まれています。

Amazon Cognito のアイデンティティプールとしても知られている Amazon Cognito の認証情報ブローカーは、Amazon DynamoDB、Amazon S3 バケット、Lambda サーバーレスコンポーネントやその他の Amazon サービスなどの AWS リソースへの Single Sign-On アクセスを提供します。ユーザーは、サービスに対する最小特権アクセスをサポートするために、異なるロールに動的にマッピングすることができます。

OAuth クライアント認証情報フローを使用して、Amazon Cognito はマシンツーマシン認証を提供し、アプリケーションコンポーネント間の安全なエクスペリエンスを確保します。

OAuth 2.0 スコープとクレームの形式のカスタム属性を使用してアクセストークンを強化します。アクセストークンでカスタム属性を使用すると、アプリケーション固有の高度な承認に関する決定を行うことができます。この機能を使用して、エンドユーザーエクスペリエンスをパーソナライズし、カスタマーエンゲージメントを向上させることもできます。 

カスタマーエクスペリエンス

データ駆動型のアプローチで、顧客獲得と維持を促進します。顧客アウトリーチキャンペーンを開始し、Amazon Pinpoint でエンゲージメントを追跡します。Amazon Pinpoint は、Amazon Cognito ベースのユーザーアクティビティを分析し、Amazon Cognito は Pinpoint キャンペーンのためにユーザーデータをエンリッチ化します。

AWS Amplify は、フロントエンドのウェブ/モバイルデベロッパーが AWS でフルスタックアプリケーションをすばやく簡単に構築できるようにする一連の専用ツールと機能であり、ユースケースの進化に合わせて幅広い AWS のサービスを活用できる柔軟性を備えています。Amplify を使用すると、Amazon Cognito でウェブまたはモバイルアプリケーションのバックエンドを設定し、数分の内にアプリを接続して、ウェブフロントエンド UI を視覚的に構築できます。さらに、AWS コンソールの外部でも、簡単にアプリケーションコンテンツの管理が行えます。クラウドの専門知識がなくても、より速く、簡単に拡張できます。

CIAM ソリューションはカスタムソリューションです。Amazon Cognito は、認証、登録、およびユーザー移行フローを完全にカスタマイズするための堅牢なフックと拡張機能のセットを提供します。たとえば、自己登録フローは、カスタム ID 証明とアカウント検証チェックで補強でき、ログインプロセスは、カスタム認証フローを作成したり、トークンを生成する前に修正したりするために拡張できます。

Amazon Cognito SDK は、Java、C++、PHP、Python、Golang、Ruby、.NET、および JavaScript を使用して利用可能です。

高度なセキュリティ

Amazon Web Application Firewall (AWS WAF) とのネイティブ統合により、Amazon Cognito には高度なボット検出機能が備わっているので、組織が自動アカウントについて課金されないようにできます。

Amazon Cognito は、ユーザーのサインアップ、サインイン、パスワード変更の際に、セキュリティ侵害を受けた認証情報の再利用をリアルタイムで検出し、防止することができます。他でセキュリティ侵害を受けた認証情報を入力していることが Amazon Cognito で検出されると、パスワードの変更を促されます。

アダプティブ認証により、ユーザーのアカウントを保護し、サインインエクスペリエンスを向上させます。Amazon Cognito で、新しい場所やデバイスからの試行など通常とは異なるサインインアクティビティが検出されると、そのアクティビティにリスクスコアが割り当てられ、ユーザーに対して追加の証明を求めるか、そのサインインリクエストをブロックするかを選択できます。

監査とコンプライアンス

Amazon Cognito は複数のセキュリティおよびコンプライアンス要件に適合しており、厳しい規制のある医療関連の企業や業者などの組織にも対応できます。Amazon Cognito は HIPAA に準拠し、PCI DSS、SOC、ISO/IEC 27001、ISO/IEC 27017、ISO/IEC 27018、ISO 9001 に適合しています。

Amazon Cognito は、AWS CloudTrail、Amazon CloudWatch メトリクス、および Amazon CloudWatch Logs Insights によるモニタリングをサポートしています。CloudTrail を使用すると、Amazon Cognito コンソールからの API コールと、Amazon Cognito API オペレーションへのコードコールをキャプチャできます。CloudWatch メトリクスを使用すると、ほぼリアルタイムでモニタリング、レポート、およびイベント発生時の自動アクションを実行できます。CloudWatch Logs Insights を使用すると、Amazon Cognito CloudTrail ログファイルをモニタリングするためのイベントを CloudWatch に送信するように CloudTrail を設定できます。