SAA-C03:AWS Certified Solutions Architect - Associate セキュアなアーキテクチャの設計 問8
セキュアなアーキテクチャの設計/セキュアなワークロードとアプリケーションの設計モバイル/Web アプリで、エンドユーザーのサインアップ・サインイン・認証をマネージドに実装し、外部 ID プロバイダー(ソーシャルログインなど)とのフェデレーションも利用したいと考えています。最も適切なサービスはどれですか。
当サイトのオリジナル問題(SAA-C03:AWS Certified Solutions Architect - Associateの出題範囲「セキュアなアーキテクチャの設計」に対応。実際の試験問題ではありません)
- AAmazon Cognito のユーザープールでサインアップ・サインイン・トークン発行を管理し、外部 ID プロバイダーとのフェデレーションも利用する
- Bエンドユーザーごとに IAM ユーザーを発行してアプリにログインさせる
- Cアプリ側で独自にパスワードデータベースを構築・保存する
- Dルートユーザーの認証情報でエンドユーザーを認証する
正解:A
解説
Amazon Cognito のユーザープールは、Web/モバイルアプリのエンドユーザー向けに、サインアップ・サインイン・多要素認証・トークン発行などをマネージドに提供する ID 基盤です。Google や Apple などの外部 ID プロバイダーや SAML/OIDC とのフェデレーションにも対応します。アプリ利用者の認証に IAM ユーザーや独自パスワード DB を使う必要がなくなります。
選択肢ごとの解説
- A正しい。Cognito ユーザープールはエンドユーザー認証をマネージドに提供し、外部 ID プロバイダーとのフェデレーションも利用できます。
- B誤り。IAM ユーザーは AWS リソースを操作する主体向けで、アプリのエンドユーザーの大量認証には適しません。
- C誤り。独自パスワード DB の構築は、セキュリティ実装の負担とリスクが大きく、マネージドの要件に反します。
- D誤り。ルートユーザーはアカウント全体の最上位認証情報で、エンドユーザー認証に用いるものではありません。