スキップしてコンテンツを表示

AWS WAF のルール内の複合条件に一致する場合の定義方法が知りたいです

0

AWS WAF のルールとして下記を設定しています。 0. 通信許可IPアドレス

  1. AWS マネージドルール(Block)-1
  2. AWS マネージドルール(Block)-2
  3. AWS マネージドルール(Block)-3 ※上記数字はプライオリティ(評価順番)です。

この時、0番で許可されたIPから、1番のBlockに該当したアクセスが発生した場合、 アクセスさせないようにルールを定義したいのですが、 どのように設定を行えば判らず、ご教示願いたいです。

例) 通信許可IPから下記 curl を発行 curl -X GET https://API-GWのURL -H "User-Agent: "

この場合の想定結果としては、通信許可IPからのアクセスなので、上記0番は許可されるが、 「User-Agent」が空欄により、1番以降のBlockに該当するため、 結果としてアクセス拒否となる。

現状のルール定義では、0番で許可されているため、1番以降が評価されていない状態です。

1回答
0
承認された回答

AWS WAFのルール設定において、複合条件を使用して特定のIPアドレスからのアクセスを許可しつつ、同時に特定の条件でブロックする設定を行うことは可能です。ただし、現在の設定方法では、0番のルールで許可されたIPアドレスからのアクセスは、それ以降のルールが評価されないため、望む結果が得られていません。

この問題を解決するためには、以下のようなアプローチを取ることができます:

  1. ルールの順序を変更する: マネージドルールを最初に配置し、その後にIPアドレスによる許可ルールを設定します。これにより、マネージドルールが先に評価され、条件に合致した場合はブロックされます。

  2. カスタムルールの作成: IPアドレスとUser-Agentの両方の条件を含む単一のカスタムルールを作成します。このルールでは、特定のIPアドレス範囲からのアクセスを許可しつつ、空のUser-Agentを持つリクエストをブロックするロジックを実装できます。

  3. ルールグループの使用: 複数のルールを組み合わせたルールグループを作成し、より複雑な条件を設定することができます。

  4. AND条件の使用: IPアドレスの条件とUser-Agentの条件を AND で結合したルールを作成します。これにより、両方の条件を満たす場合のみアクションが実行されます。

具体的な実装方法としては、AWS WAFのWebACLで以下のようなルール構成を考えることができます:

  1. AWS マネージドルール(Block)-1
  2. AWS マネージドルール(Block)-2
  3. AWS マネージドルール(Block)-3
  4. カスタムルール:
    • 条件1: 許可するIPアドレス範囲
    • 条件2: User-Agentが空でない
    • アクション: 両方の条件を満たす場合に許可、それ以外はブロック

この設定により、マネージドルールで検出される脅威をまずブロックし、その後で特定のIPアドレスからの正常なアクセスのみを許可することができます。同時に、許可されたIPアドレスからでも、不適切なUser-Agentを持つリクエストはブロックされます。
Sources
如何讓 IAM 使用者只看的到自己建立的資源 ( How to allow IAM users to only see resources they have created.) | AWS re:Post

回答済み 1年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

関連するコンテンツ