あるモバイルゲーム企業がAWSでバックエンドを構築しています。以下の要件があります。 ・ユーザーはGoogleアカウントまたはメール/パスワードでサインインできること ・認証済みユーザーは自分専用のS3プレフィックス(s3://game-data/users/{ユーザーID}/)にのみアクセスできること ・未認証(ゲスト)ユーザーにも一部の公開コンテンツへの読み取りアクセスを許可すること ・バックエンドAPIはAmazon API Gatewayで公開すること この要件を最も適切に満たすAmazon Cognitoの構成はどれですか?
Cognitoユーザープールがメール/パスワード認証とGoogle連携を担当し、Cognito IDプール(フェデレーテッドアイデンティティ)がJWTを受け取ってAWSの一時クレデンシャルを発行する。IAMポリシー変数`${cognito-identity.amazonaws.com:sub}`でユーザー固有のS3プレフィックスに制限でき、未認証ロールの設定でゲストアクセスも実現できる。両者の組み合わせが本要件の標準パターン。 選択肢AのユーザープールのみではJWTトークンが発行されるが、S3はAWS Signature V4を要求するためJWTでS3に直接アクセスすることはできない。AWSクレデンシャルの発行にはIDプールが必要。 選択肢CのIDプールのみの構成では、メール/パスワード認証機能がなく、ユーザー管理も別システムが必要になり統合管理ができない。 選択肢DのIAM Identity Centerは企業従業員向けのAWSコンソールSSOに使用するサービスであり、コンシューマー向けモバイルゲームのエンドユーザー認証には適していない。