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

AWSパートナー企業(アカウントID: 111111111111)が複数の顧客企業のAWSリソースを管理するSaaSサービスを提供しています。ある顧客(アカウントID: 222222222222)が自社アカウントにクロスアカウントIAMロールを作成し、パートナー企業のアプリケーションがSTS AssumeRoleでそのロールを引き受けます。悪意ある第三者がパートナー企業のアカウントIDを入手してロールを不正に引き受けようとする「混乱した代理人(Confused Deputy)攻撃」を防ぐための最もセキュアな方法はどれですか?

A
顧客アカウントのロールのトラストポリシーで、パートナー企業の特定のIAMユーザーARN(Amazon Resource Name:AWSリソースを一意に識別する名前)のみをPrincipalとして指定する
特定のIAMユーザーARNをPrincipalとして指定することでアクセス元を限定できますが、そのユーザーが侵害された場合に悪用されるリスクが残り、Confused Deputy攻撃の防止にはExternalIdの使用がAWSの推奨アプローチです。
B
顧客アカウントのロールのトラストポリシーにConditionとしてsts:ExternalId条件キーを追加し、パートナー企業と顧客ごとに固有の外部ID(ExternalId)をAssumeRole呼び出し時に要求する
✓ 正解
sts:ExternalIdを顧客ごとに固有の秘密値として設定することで、アカウントIDを知っているだけではAssumeRoleできなくなります。悪意ある第三者はExternalIdを知ることができないため、Confused Deputy攻撃を根本的に防止できるAWSの推奨セキュリティパターンです。
C
パートナー企業と顧客企業の両アカウントをAWS Organizationsの同一組織(OU:Organizational Unit)に所属させ、SCPで制御する
AWS OrganizationsとSCPは同一組織内のアカウントに対する制御には有効ですが、パートナーと顧客が別組織に属する一般的なSaaSクロスアカウントシナリオでは適用できないため、この要件には対応できません。
D
パートナー企業のアプリケーションにハードウェアMFA(Multi-Factor Authentication:多要素認証)デバイスを設定し、トラストポリシーのConditionにaws:MultiFactorAuthPresentを追加する
ハードウェアMFAは人間のオペレーターが手動でAssumeRoleを実行するシナリオには有効ですが、アプリケーションが自動的にAssumeRoleを呼び出すSaaSシナリオでは実装が困難であり、Confused Deputy攻撃の防止策としては不適切です。

解説

混乱した代理人(Confused Deputy)攻撃では、悪意ある第三者がパートナー企業のアカウントIDを知るだけで顧客のロールを不正に引き受けようとします。sts:ExternalIdは顧客ごとに固有の秘密値をパートナーと顧客間で事前に取り決めてトラストポリシーのConditionに設定する仕組みです。AssumeRole呼び出し時に正しいExternalIdを提示できなければロールを引き受けられないため、アカウントIDを入手した第三者による不正アクセスを防止できます。これはクロスアカウントSaaSアクセスにおけるAWSの推奨セキュリティパターンです。 選択肢Aの特定IAMユーザーARNをPrincipalに指定する方法はアクセス元を限定しますが、そのユーザーが侵害された場合のリスクが残り、ExternalIdほど強固なConfused Deputy対策にはなりません。 選択肢CのAWS Organizations+SCPは同一組織内のアカウント管理には有効ですが、パートナーと顧客が別組織に属するクロスアカウントSaaSシナリオでは適用できません。 選択肢DのハードウェアMFAは人間のオペレーターが手動操作する場合には有効ですが、アプリケーションが自動的にAssumeRoleを呼び出すシナリオでは実装が困難であり、Confused Deputy攻撃の防止策としては不適切です。

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

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

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