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

HTTPのリクエストボディサイズに対する制限方法について知りたいです。

0

AWS WAF のルール名「AWSManagedRulesCommonRuleSet」に含まれている「SizeRestrictions_BODY」では、 リクエストボディサイズが8KB以上であるか否かの評価を行っていますが、 8KB以上のサイズ(例:16KB、32KBなど)に対する評価を行う手法が、AWSサービス内で存在しますでしょうか? 存在する場合は、対象サービスとその手法が知りたいです。

また、8KB以上のサイズを評価する場合、AWS WAF の「SizeRestrictions_BODY」に対しては、 どのような変更が必要となりますでしょうか?

1回答
0
承認された回答

SizeRestrictions_BODYは8KB以上のボディサイズの場合はブロックするので16KBであってもブロックされます。 16KB以上の場合にブロックしたい (8KBの制限を超えたい) という理解で合っていますでしょうか?

その場合は以下のようなボディサイズを検査するカスタムルールを追加すればよいと思います。

{
  "Name": "test",
  "Priority": 0,
  "Statement": {
    "SizeConstraintStatement": {
      "FieldToMatch": {
        "Body": {
          "OversizeHandling": "MATCH"
        }
      },
      "ComparisonOperator": "GE",
      "Size": 16000,
      "TextTransformations": [
        {
          "Priority": 0,
          "Type": "NONE"
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test"
  }
}

ちなみに制限が解除されているのは一部のリソースだけなので、ALBなどに設定する場合は8KBまでしか使えません。
https://dev.classmethod.jp/articles/aws-waf-extends-body-cehck-to-64kb/

制限が解除されているサービスは以下のドキュメントに記載されています。
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/web-acl-setting-body-inspection-limit.html

Application Load Balancer と AWS AppSync の場合、制限は 8 KB (8,192 バイト) に固定されます。
CloudFront、API Gateway、Amazon Cognito、App Runner、Verified Access の場合、デフォルトの制限は 16 KB (16,384 バイト) であり、任意のリソースタイプの制限を 16 KB、最大 64 KB の増分で増やすことができます。設定オプションは 16 KB、32 KB、48 KB、および 64 KB です。

エキスパート
回答済み 8ヶ月前
  • ご回答ありがとうございます。

    頂いた回答内容から、ボディサイズの引き上げに対するBlockの定義方法は、 下記流れと認識しましたが相違ないでしょうか?

    1. 「SizeRestrictions_BODY」は、[Override to Count] に変更
    2. 「Add rules」> [Add my own rules and rule groups] にて、 ご提示いただいた内容を記載
  • ご認識の通りです。 カスタムルールの追加なので[Add my own rules and rule groups]で追加が可能です。

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

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

関連するコンテンツ