無限ノック › SCS 練習問題一覧 › 問題
SCSアイデンティティとアクセス管理

あなたの会社はマルチテナントSaaSアプリケーションを提供しており、各テナントにAmazon S3バケット内の専用プレフィックス(例: s3://data-bucket/tenant-001/)への一時的なアクセス権を付与する必要があります。以下の要件があります。 ・基盤となるIAMロール(AppServerRole)はS3バケット全体への読み書き権限を持つ ・各テナントには自分のプレフィックスにのみアクセスできる一時クレデンシャルを動的に発行する ・テナントの追加・削除のたびにIAMポリシーやIAMロールを変更したくない ・アプリケーションサーバーがトークンブローカーとして動作する この要件を最もセキュアかつスケーラブルに実現する方法はどれですか?

A
テナントごとに個別のIAMロールを作成し、各ロールにテナント固有のS3プレフィックスを制限するインラインポリシーを設定する
IAMロール個別作成は、テナント数に比例してIAMリソースが増加します。AWSアカウントあたりのIAMロール数に上限があり、スケールしません。
B
AWS STS AssumeRole呼び出し時にPolicy引数(セッションポリシー)を渡し、テナント固有のS3プレフィックスに権限を動的に絞り込む
✓ 正解
STSのAssumeRole(またはAssumeRoleWithWebIdentity)呼び出し時にPolicy引数としてセッションポリシーを渡すことで、発行される一時クレデンシャルの権限を動的に制限できます。セッションの有効権限は「ロールポリシー AND セッションポリシー」の積集合となるため、AppServerRoleの広範なS3権限をテナント固有のプレフィックスに絞り込めます。テナントが増減してもIAMロールやポリシーの変更は不要であり、スケーラブルです。
C
AppServerRoleのインラインポリシーにすべてのテナントプレフィックスをリソースARNとして列挙し、Conditionでテナントごとにアクセスを制限する
IAMインラインポリシー列挙は、テナント追加・変更のたびにIAMポリシーの更新が必要となり「ポリシーを変更したくない」という要件を満たしません。
D
テナントごとにAmazon Cognitoユーザープールの異なるグループを作成し、各グループを異なるIAMロールにマッピングしてS3プレフィックスを制限する
Cognitoはエンドユーザー向け認証・認可サービスです。テナントごとにユーザープールグループとIAMロールを管理する構成は複雑であり、サーバー間トークンブローカーパターンには適していません。

解説

STSのAssumeRole(またはAssumeRoleWithWebIdentity)呼び出し時にPolicy引数としてセッションポリシーを渡すことで、発行される一時クレデンシャルの権限を動的に制限できます。セッションの有効権限は「ロールポリシー AND セッションポリシー」の積集合となるため、AppServerRoleの広範なS3権限をテナント固有のプレフィックスに絞り込めます。テナントが増減してもIAMロールやポリシーの変更は不要であり、スケーラブルです。 選択肢AのIAMロール個別作成は、テナント数に比例してIAMリソースが増加します。AWSアカウントあたりのIAMロール数に上限があり、スケールしません。 選択肢CのIAMインラインポリシー列挙は、テナント追加・変更のたびにIAMポリシーの更新が必要となり「ポリシーを変更したくない」という要件を満たしません。 選択肢DのCognitoはエンドユーザー向け認証・認可サービスです。テナントごとにユーザープールグループとIAMロールを管理する構成は複雑であり、サーバー間トークンブローカーパターンには適していません。

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

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

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