AWS Certified Solutions Architect Associate(SAA-C03) 練習問題 48:アプリケーションの認証とユーザー管理
数百万人のユーザーが利用するWebおよびモバイルアプリケーションを構築しています。ユーザー自身のサインアップ機能や、GoogleやFacebookなどの外部IDプロバイダーを利用したログイン機能(フェデレーション認証)を簡単に実装したい場合、最も適切なAWSサービスはどれか。
- AWS IAM Identity Centerを利用すると、外部のプロバイダーアカウントを使って、数百万規模の一般Webアプリケーションユーザーの認証と認可を管理できる。
- Amazon Cognitoを利用すると、マネージドなユーザーディレクトリの提供や、外部のソーシャルIDプロバイダーと連携したアプリケーションの認証機能を簡単に組み込める。
- AWS Directory Serviceを利用すると、クラウドネイティブな一般消費者向けのモバイルアプリケーションにおいて、数百万規模の外部ユーザー認証を管理できる。
- AWS Identity and Access Management (IAM) を利用すると、一般のアプリケーションユーザーに対して個別のパスワードやMFAを割り当てて一元管理できる。
- Amazon GuardDutyを利用すると、機械学習を用いて不正なサインインを検知し、アプリケーションの認証フローにソーシャルログインの機能を安全に追加できる。
正解と解説を見る
Webやモバイルアプリケーションで、一般ユーザー向けの認証やソーシャルログインを実装したい場合は、Amazon Cognitoを利用するのが正解です。
【正解の理由】
Amazon Cognitoは、Webアプリやモバイルアプリにサインアップ、サインイン、アクセスコントロールを簡単に追加できるサービスです。「ユーザープール」と呼ばれる機能を利用することで、アプリ専用のユーザーディレクトリを管理したり、Google、Facebook、AppleなどのサードパーティIDプロバイダー(=外部の認証システムを利用してログインする仕組み)とフェデレーション(連携)させることが容易にできます。
【不正解の理由】
• 「AWS IAM Identity Centerを利用すると〜一般Webアプリケーションユーザーの認証と認可を管理できる」という説明は誤り。IAM Identity Center(旧AWS SSO)は、企業の従業員が複数のAWSアカウントやビジネスアプリケーションにログインするための機能であり、一般消費者向けのアプリ認証には適していません。
• 「AWS Directory Serviceを利用すると〜数百万規模の外部ユーザー認証を管理できる」という説明は誤り。Directory ServiceはオンプレミスのMicrosoft Active Directoryと連携し、主に社内システム向けの認証基盤を提供するサービスです。
• 「AWS Identity and Access Management (IAM) を利用すると、一般のアプリケーションユーザーに対して〜」という説明は誤り。IAMはAWSのリソースに対するアクセス権限を管理するものであり、アプリの一般ユーザーの管理に利用すべきではありません。
• 「Amazon GuardDutyを利用すると〜アプリケーションの認証フローにソーシャルログインの機能を安全に追加できる」という説明は誤り。GuardDutyは悪意のあるアクティビティを継続的に監視する脅威検出サービスであり、認証機能を提供するものではありません。