ウェブ ACL の既定の許可ポリシーの確認

サービスのアクセス方針に合わせて、ウェブ ACL の既定のアクションを選んでください。

説明

AWS WAF の DefaultAction は、先行する規則で最終的な許可・ブロックが決まらなかったリクエストに適用されます。公開サービスをブロックリストで保護する場合は、既定の許可が適切なこともあります。承認済みリクエストだけを受け付ける許可リスト方式では、明示的な許可規則と既定のブロックが必要です。

想定される影響

許可リストを意図していても、既定の許可を使うとリスト外のリクエストがアプリケーションに届く可能性があります。一方、必要な許可規則なしで既定のブロックに切り替えると、正規のリクエストを遮断するおそれがあります。

対処方法

先にアクセス方針を決め、既定のアクションと規則の優先順位をまとめて確認してください。許可リストが必要なサービスでは、承認済みリクエストを許可する規則を設定し、それ以外をブロックします。許可対象と不要なリクエストを両方試験してください。

例

既存 IP セットのアドレスだけを許可する REGIONAL ウェブ ACL の例です。同じリージョンの REGIONAL IP セットの ARN を TrustedIPSetArn に指定し、ウェブ ACL と保護対象の関連付けは別途設定します。変更前は IP セット外のリクエストも許可されますが、変更後はブロックされます。現在の AWS::WAFv2::WebACL 形式を使用しています。

変更前

yaml
Parameters:
  TrustedIPSetArn:
    Type: String
Resources:
  MyWebACL:
    Type: AWS::WAFv2::WebACL
    Properties:
      Name: WebACL
      Scope: REGIONAL
      DefaultAction:
        Allow: {}
      VisibilityConfig:
        SampledRequestsEnabled: true
        CloudWatchMetricsEnabled: true
        MetricName: MyWebACL
      Rules:
        - Name: MyRule
          Priority: 1
          Action:
            Allow: {}
          Statement:
            IPSetReferenceStatement:
              Arn: !Ref TrustedIPSetArn
          VisibilityConfig:
            SampledRequestsEnabled: true
            CloudWatchMetricsEnabled: true
            MetricName: MyRule

変更後

yaml
Parameters:
  TrustedIPSetArn:
    Type: String
Resources:
  MyWebACL:
    Type: AWS::WAFv2::WebACL
    Properties:
      Name: WebACL
      Scope: REGIONAL
      DefaultAction:
        Block: {}
      VisibilityConfig:
        SampledRequestsEnabled: true
        CloudWatchMetricsEnabled: true
        MetricName: MyWebACL
      Rules:
        - Name: MyRule
          Priority: 1
          Action:
            Allow: {}
          Statement:
            IPSetReferenceStatement:
              Arn: !Ref TrustedIPSetArn
          VisibilityConfig:
            SampledRequestsEnabled: true
            CloudWatchMetricsEnabled: true
            MetricName: MyRule

参考資料