ある企業のモバイルアプリは、ユーザーがサインアップ・サインインして独自の S3 バケットのオブジェクトにアクセスできる必要があります。ユーザー管理(MFA・パスワードリセット)と、AWS リソースへの一時的アクセス認可の両方を最小構成で実現するには、どのサービスの組み合わせが最適ですか?
- A. Cognito ユーザープールで認証し、Cognito ID プールで AWS 一時認証情報を取得する
- B. Cognito ID プールのみを使い、ゲストアクセスで S3 を利用する
- C. API Gateway + Lambda でサインインを実装し、Lambda がアクセスキーを返す
- D. IAM ユーザープールと S3 バケットポリシーの組み合わせ
解答と解説を見る
正解: A
Cognito ユーザープールはユーザーディレクトリ(サインアップ・サインイン・MFA・パスワードリセット)を提供し、ID プールはユーザープールの JWT トークンを AWS 一時認証情報(STS 経由)に交換して IAM ロールを引き受けさせます。この二層構造が「認証+AWS 認可」の標準パターンです。D の「IAM ユーザープール」は存在しないサービスです。B の ID プールのみではユーザー管理機能がありません。C はアクセスキーを返す設計がセキュリティリスクであり、運用負荷も高くなります。
📚 関連サービスの解説: Amazon Cognito