DVAセキュリティ

Company AはマルチテナントのSaaSサービスを構築しており、各顧客のAWSアカウント内のリソースにアクセスするために顧客アカウントのIAMロールをAssumeRoleします。セキュリティレビューで、この構成が「Confused Deputy問題(混乱した代理人問題:第三者が正規サービスを騙して不正なロールを引き受けさせる攻撃)」に脆弱であることが指摘されました。この脆弱性を修正するために、各顧客アカウントのIAMロールのトラストポリシーに追加すべき設定はどれですか?

A
aws:SourceAccount条件を使用して、Company AのAWSアカウントIDのみを許可する
S3やSNS等のAWSサービスがユーザーリソースを代理する場面での混乱代理人問題に対応する条件で、別AWSアカウント間のAssumeRoleシナリオには不適切です。
B
sts:ExternalId条件に顧客ごとのユニークな値を設定し、AssumeRole時にその値の提示を必須とする
✓ 正解
各顧客アカウントのトラストポリシーに顧客ごとのユニークなシークレット値(ExternalId)を指定し、正規のCompany AシステムのみがAssumeRole可能です。
C
ロールにパーミッションバウンダリー(権限境界)を設定し、引き受けたロールの権限範囲を制限する
引き受けたロール側の最大権限を制限しますが、悪意ある代理人がAssumeRoleできるかどうかを防止しません。
D
MFA(多要素認証)条件を追加し、AssumeRole前にMFA認証を必須にする
AssumeRole時にMFA認証を追加しますが、正当な認証情報を持つ者であれば引き続き悪意あるAssumeRoleが可能です。

解説

Confused Deputy問題は、悪意ある第三者がCompany AのアカウントIDを知り、Company Aに自分のリソースへの不正アクセスを代理実行させる攻撃です。各顧客アカウントのトラストポリシーにsts:ExternalId条件(顧客ごとのユニークなシークレット値)を設定することで、正規のCompany Aのシステムのみが正しいExternalIdを提示してAssumeRoleできます。 aws:SourceAccountはS3やSNSなどのAWSサービスがユーザーのリソースを代理してロールを引き受ける場面での混乱した代理人問題を防ぐための条件であり、Company Aのような別AWSアカウントが直接AssumeRoleするシナリオの制御には適していません。

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

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

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