無限ノック › DVA 練習問題一覧 › 問題
DVAセキュリティ

あるモバイルアプリケーションの開発チームは、ユーザー認証およびバックエンドリソース(Amazon S3やAmazon DynamoDBなど)へのアクセス制御を実装しています。サードパーティのIDプロバイダー(GoogleやFacebook)でログインした認証済みユーザーに対して、一時的なAWS IAM資格情報を発行し、権限付与された範囲でAWSリソースへ直接安全にアクセスさせたいと考えています。この要件を満たすAmazon Cognitoの適切なアーキテクチャ構成はどれですか。

A
Cognito ユーザープールでユーザーのサインインを処理し、Cognito アイデンティティプールを使用して一時的なAWS IAM資格情報を付与する。
✓ 正解
Cognitoユーザープールによる認証(JWT発行)と、Cognitoアイデンティティプールによる一時的なAWS IAM資格情報の発行を連携させる構成がAWSの標準的なベストプラクティスです。
B
Cognito ユーザープールのみを使用してJWTトークンを発行し、そのトークンを直接AWS IAMのAssumeRole APIに渡して検証させる。
Cognitoユーザープールが発行するJWTトークンをそのままIAM AssumeRoleに直接渡して代替させることはできず、アイデンティティプールを仲介させる必要があります。
C
Cognito アイデンティティプールでユーザーの認証管理を行い、発行されたJWTトークンを直接S3やDynamoDBのアクセス権限に変換する。
アイデンティティプール単体で独自ユーザーのディレクトリ管理や直接的な認証処理を行うことはできず、またJWTトークン自体が直接IAMの権限として機能するわけではありません。
D
AWS STS(Security Token Service)をアプリケーション内で直接呼び出して自前で認証を行い、Cognito ユーザープールに認可情報を書き込む。
Cognitoを使用せずにSTSをモバイルアプリから直接呼び出す設計は、認証・認可ロジックが複雑化しセキュリティリスクが高まるため、専用サービスであるCognitoを使うべきです。

解説

Amazon Cognitoでは役割が明確に分かれています。「ユーザープール(User Pool)」はユーザーの登録・ログイン認証およびJWTトークンの発行を担当し、「アイデンティティプール(Identity Pool)」は認証されたユーザー(外部IDPやユーザープール経由)に対して一時的なAWS IAM資格情報を払い出す役割を担います。両者を組み合わせることで、AWSリソースへの安全な直接アクセスが可能になります。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る