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

あるモバイルアプリはCognito Identity Poolsを使用しており、Cognito User Poolsで認証した全ユーザーに基本的なS3読み取り権限を持つIAMロールを割り当てています。新たな要件として、Cognito User PoolsのグループPremiumに所属するユーザーには高解像度コンテンツ用の別S3バケットへの書き込み権限も付与したいです。既存のアーキテクチャへの変更を最小限に抑えながらこれを実現する最も適切な方法はどれですか?

A
Identity PoolsのRole Mappingで「ルール(Rules)」を使用し、トークン内のcognito:groupsクレームがPremiumの場合に書き込み権限を持つ専用IAMロールへマッピングするルールを設定し、一致しない場合はデフォルトの認証済みロールを適用する
✓ 正解
Cognito Identity Poolsのロールマッピングには「ルールベースのマッピング」機能があり、JWTトークン内のクレーム(cognito:groupsなど)を条件として異なるIAMロールを割り当てられます。Premiumグループ用のIAMロールに追加のS3書き込み権限を付与し、Identity PoolsのRole Mapping RulesでPremiumグループを検出して対象ロールに割り当てます。
B
すべての認証済みユーザーに同じIAMロールを割り当て、S3バケットポリシーでCognito JWTトークン(JSON Web Token:JSONベースの認証トークン)内のグループクレームを直接評価してアクセスを制御する
S3バケットポリシーはCognitoのJWTクレームをネイティブに評価できないため誤りです。
C
Premiumユーザー専用のCognito User Poolsを別途作成し、それぞれ異なるIdentity Poolsに接続して独立したIAMロールを割り当てる
Premiumユーザー専用のUser Poolsは既存のアーキテクチャへの変更が大きすぎます。
D
API Gatewayを経由させ、Lambda関数内でCognito User Poolsのグループを確認してから代わりにS3へ書き込みを実行する(直接S3アクセスは廃止)
API Gateway経由は既存のUser PoolsとIdentity Poolsの利用を変更するため、最小限という要件を満たしません。

解説

Cognito Identity Poolsのロールマッピングには「ルールベースのマッピング」機能があり、JWTトークン内のクレーム(cognito:groupsなど)を条件として異なるIAMロールを割り当てられます。Premiumグループ用のIAMロールに追加のS3書き込み権限を付与し、Identity PoolsのRole Mapping RulesでPremiumグループを検出して対象ロールに割り当てます。 選択肢BのS3バケットポリシーはCognitoのJWTクレームをネイティブに評価できないため誤りです。 選択肢CのPremiumユーザー専用のUser Poolsは既存のアーキテクチャへの変更が大きすぎます。 選択肢DのAPI Gateway経由は既存のUser PoolsとIdentity Poolsの利用を変更するため、最小限という要件を満たしません。

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

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

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