Web ACL의 기본 허용 정책 점검

Web ACL의 기본 동작을 서비스의 허용·차단 정책에 맞게 선택하세요.

설명

AWS WAF의 DefaultAction은 앞선 규칙에서 최종 허용·차단 결정이 내려지지 않은 요청에 적용됩니다. 기본 허용은 공개 서비스의 차단 목록 방식에 적합할 수 있습니다. 승인된 요청만 받아야 하는 허용 목록 방식이라면 기본 차단과 명시적 허용 규칙이 필요합니다.

잠재적 영향

허용 목록을 의도했는데 기본 허용을 사용하면 목록 밖의 요청도 애플리케이션으로 전달될 수 있습니다. 반대로 필요한 허용 규칙 없이 기본 차단으로 바꾸면 정상 요청이 차단될 수 있습니다.

해결 방법

접근 정책을 먼저 정하고 기본 동작과 규칙의 우선순위를 함께 검토하세요. 허용 목록이 필요한 서비스는 승인된 요청의 허용 규칙을 구성한 뒤 나머지를 차단하고, 정상·비정상 요청을 시험하세요.

예시

기존 IP 집합의 주소만 허용하려는 REGIONAL Web ACL 예시입니다. 같은 리전의 REGIONAL IP 집합 ARN을 TrustedIPSetArn에 입력하고, Web 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

참조