설명
REST API Stage를 AWS WAF Web ACL에 연결하지 않으면 해당 ACL의 요청 검사와 차단이 적용되지 않습니다. 필터링이 필요한 API는 서비스 목적과 기존 보호 수단을 고려해 WAF를 구성하세요.
WAF는 구성된 규칙에 따라 요청을 처리하며 연결만으로 모든 공격을 차단하지는 않습니다. 호출자 인증, 애플리케이션 권한 검사와 취약점 수정을 대신하지 않습니다.
잠재적 영향
- 공격 노출 증가: 웹 계층 공격과 비정상 요청이 그대로 전달될 수 있습니다.
- 백엔드 부담 증가: API와 연결된 서비스가 불필요한 트래픽을 직접 처리하게 됩니다.
- 방어 계층 부족: 차단 규칙과 속도 제한을 적용할 기회가 줄어듭니다.
해결 방법
- 보호할 REST API Stage에 같은 리전의 REGIONAL WAFv2 Web ACL을 연결하세요.
- API에 맞는 관리형·사용자 정의 규칙과 예외를 선택하고 Count 모드 등으로 정상 요청에 미치는 영향을 확인한 뒤 필요한 차단을 적용하세요.
- WAF 적용 후 차단 로그와 허용 로그를 주기적으로 검토하세요.
예시
REST API, 배포와 같은 리전의 REGIONAL WAFv2 Web ACL은 별도로 구성합니다. 아래는 연결 설정 발췌이며 규칙과 로그 설정은 생략했습니다.
변경 전
hcl
resource "aws_api_gateway_stage" "example" {
deployment_id = aws_api_gateway_deployment.example.id
rest_api_id = aws_api_gateway_rest_api.example.id
stage_name = "example"
}
변경 후
hcl
resource "aws_api_gateway_stage" "example" {
deployment_id = aws_api_gateway_deployment.example.id
rest_api_id = aws_api_gateway_rest_api.example.id
stage_name = "example"
}
resource "aws_wafv2_web_acl_association" "association" {
resource_arn = aws_api_gateway_stage.example.arn
web_acl_arn = aws_wafv2_web_acl.foo.arn
}
설명:
- 변경 전: 이 발췌에는 Stage와 Web ACL의 연결이 없습니다. 별도 보호 수단과 실제 연결 상태도 확인하세요.
- 변경 후: Stage를 WAFv2 Web ACL에 연결합니다. ACL의 규칙과 동작을 구성하고 정상 요청과 악성 요청의 처리 결과를 확인하세요.