AWS WAF 설정법 – 웹 공격 차단과 방화벽 관리

AWS WAF 설정법 – 웹 공격 차단과 방화벽 관리

웹 애플리케이션은 지속적으로 SQL 인젝션, XSS, 봇 트래픽, DDoS와 같은 공격 위협에 노출되어 있습니다. 이를 방어하기 위한 대표적인 솔루션이 웹 애플리케이션 방화벽(WAF)입니다. AWS WAF(Amazon Web Application Firewall)는 AWS 환경에 최적화된 관리형 보안 서비스로, 다양한 웹 공격을 자동으로 탐지하고 차단할 수 있습니다. 이번 포스팅에서는 AWS WAF 설정법 – 웹 공격 차단과 방화벽 관리라는 주제로 실전에서 바로 활용 가능한 설정 절차를 자세히 안내드립니다.


✅ AWS WAF란?

AWS WAF는 클라우드 기반 웹 애플리케이션 방화벽으로, 다음과 같은 기능을 제공합니다:

  • SQL Injection, XSS 등 OWASP Top 10 웹 공격 차단
  • IP 필터링, 요청 속도 제한, 봇 차단 등 정책 설정 가능
  • CloudFront, Application Load Balancer(ALB), API Gateway와 통합
  • 실시간 모니터링 및 경보 설정 가능

AWS Shield와 결합하면 DDoS 방어까지 확장 가능하여 종합적인 웹 보안 체계를 구축할 수 있습니다.


✅ 1단계: WAF Web ACL 생성하기

**Web ACL(Web Access Control List)**는 AWS WAF에서 방화벽 역할을 하는 정책 세트입니다.

📍 생성 경로

  • AWS 콘솔 > WAF & Shield > Web ACL > ‘Create web ACL’

📍 설정 항목

  1. Web ACL 이름: 예: my-app-waf
  2. 리전 선택:
    • CloudFront용 WAF는 Global 선택
    • ALB, API Gateway는 배포 리전 선택
  3. 리소스 연결:
    • ALB, API Gateway, CloudFront 중 선택하여 연결
  4. Associated resources에서 웹 리소스 선택

✅ 2단계: 규칙(Rules) 추가

WAF는 다양한 보안 규칙을 Rule 그룹으로 추가해 공격을 차단합니다.

📍 일반적으로 설정하는 룰

룰 유형설명
AWS Managed Rule GroupAWS에서 제공하는 사전 정의 룰 (권장)
IP Set Rule허용 또는 차단할 IP 목록
Rate-based Rule일정 시간 이상 요청한 IP 차단
SQL Injection MatchSQL 삽입 공격 탐지
XSS Match크로스사이트 스크립팅 방지
Custom Rule사용자 정의 패턴 (User-Agent, URL, 쿠키 등) 기반 탐지

📍 추천 룰 설정 예시

  • AWSManagedRulesCommonRuleSet: 기본 보안 패턴 포함
  • AWSManagedRulesKnownBadInputsRuleSet: 악성 입력 탐지
  • Rate-based rule: 5분 동안 1,000회 이상 요청한 IP 차단
  • Custom rule: /admin URL에 접근한 모든 외부 요청 차단
IF request.url == "/admin" AND IP not in whitelist:
    action = BLOCK

✅ 3단계: 규칙 우선순위 설정 및 액션 선택

  • 우선순위: 숫자가 작을수록 먼저 적용됨
  • 액션 종류:
    • Allow: 요청 허용
    • Block: 요청 차단
    • Count: 탐지만 하고 차단은 안 함 (테스트 시 사용)

Tip: 초기에는 Count 모드로 설정해 탐지 결과를 확인하고, 이상이 없을 때 Block으로 전환하는 것을 권장합니다.


✅ 4단계: WAF 동작 확인 및 모니터링

  1. AWS WAF > Web ACL > Metrics 탭 확인
    • 차단 횟수, 룰별 트래픽 로그 확인 가능
  2. CloudWatch 로그 연동
    • WAF 로그를 CloudWatch Logs에 전송하여 실시간 분석
    • IP, User-Agent, Referer 등의 조건으로 로그 필터링 가능
  3. 경고 알림 설정
    • 특정 룰이 작동할 경우 SNS를 통해 보안팀에 자동 알림 발송 가능

✅ 5단계: IP 차단 및 화이트리스트 관리

📍 IP Set 생성

  • AWS WAF > IP sets > Create IP set
  • 예: block-bad-ips 라는 IP Set에 악성 IP 추가

📍 룰에 적용

  • Rule > Add condition > IP set 선택
  • 액션: Block

📍 동적 차단 자동화 (Lambda 연계)

CloudWatch + Lambda 조합으로 특정 조건에 해당하는 IP를 자동으로 IP Set에 추가하여 WAF 룰에 반영할 수 있습니다.


✅ Q&A

Q. ALB와 API Gateway 둘 다 보호하려면 Web ACL을 따로 만들어야 하나요?
네, AWS WAF는 리전별 또는 글로벌 리소스에 따라 Web ACL이 따로 구성됩니다.

  • CloudFront: 글로벌 Web ACL
  • ALB, API Gateway: 리전별 Web ACL
    따라서 둘 다 보호하려면 각각에 WAF를 설정해야 합니다.

Q. 모든 요청에 대해 WAF가 성능에 영향을 주지는 않나요?
AWS WAF는 경량화된 고속 필터링 엔진을 사용하기 때문에, 대부분의 웹 서비스에서 지연 시간은 거의 무시할 수준입니다. WAF로 인해 생기는 오버헤드는 수십 ms 내외이며, Rule 수가 너무 많지만 않으면 큰 영향은 없습니다.


Q. WAF 없이도 ALB 보안 그룹으로 차단 가능한데 왜 써야 하나요?
보안 그룹은 네트워크 계층(L3) 수준의 IP 차단만 가능하고, HTTP 요청 패턴, 경로, 파라미터 분석은 불가능합니다.
반면, WAF는 **애플리케이션 계층(L7)**에서 다양한 조건으로 공격을 탐지하고 정밀하게 방어할 수 있어 필수적으로 병행 사용해야 합니다.


✅ 요약 정리

항목설명
주요 기능웹 공격 차단(SQLi, XSS, 봇, 속도제한 등)
적용 대상CloudFront, ALB, API Gateway
룰 종류AWS 관리형, 사용자 정의, IP Set, Rate-based
추천 설정Count 모드로 테스트 후 Block 전환
로그 관리CloudWatch 연동으로 실시간 분석 가능
자동화Lambda로 IP 차단 자동화 가능

결론

AWS WAF 설정법 – 웹 공격 차단과 방화벽 관리는 안전한 클라우드 환경 운영을 위한 핵심입니다. 단순히 WAF를 켜는 것에 그치지 말고, 상황에 맞는 규칙 설정, Count 기반 테스트, CloudWatch 분석, 자동화까지 연계해야 실질적인 효과를 볼 수 있습니다. 보안은 한 번에 완성되는 것이 아니라, 지속적인 탐지와 조치의 반복이라는 점을 꼭 기억하세요.