설명
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