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