WAF, Shield 및 Network Firewall
AWS WAF로 OWASP 상위 10개 공격을 차단하고, Shield Standard 및 Advanced로 DDoS 공격을 방어하며, VPC에 상태 저장 Network Firewall을 배포합니다.
WAF, Shield 및 Network Firewall은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
네트워크 보안의 심층 방어
네트워크 기반 공격으로부터 애플리케이션을 보호하려면 여러 방어 계층이 필요합니다. AWS는 서로 보완되는 세 가지 서비스를 제공합니다. AWS WAF(Web Application Firewall)는 규칙에 따라 계층 7 HTTP 트래픽을 필터링하여 애플리케이션 계층 공격을 차단합니다. AWS Shield는 계층 3 및 4에서 DDoS(Distributed Denial of Service) 공격을 방어합니다. AWS Network Firewall은 VPC 수준의 트래픽을 검사하고 필터링하는 상태 저장 네트워크 방화벽입니다. 이 세 서비스를 함께 사용하면 서로 다른 위협 경로에 대응할 수 있으며, 포괄적인 보호를 위해 일반적으로 함께 배포합니다.
# Layer coverage:
# Network Firewall: Layer 3-7 VPC traffic (stateful)
# Shield Standard: Layer 3-4 DDoS (automatic, free)
# Shield Advanced: Layer 3-7 DDoS + response team
# WAF: Layer 7 HTTP/HTTPS (application attacks)
# Typical deployment:
# Internet -> CloudFront+WAF -> ALB+WAF -> EC2/ECS
# Network Firewall in VPC for egress/lateral inspection
# Shield protects all traffic automaticallyAWS WAF: Web Application Firewall
AWS WAF는 사용자가 정의한 규칙에 따라 HTTP/HTTPS 요청을 필터링합니다. WAF는 CloudFront, ALB, API Gateway, AppSync 및 Cognito와 통합됩니다. 규칙은 다음 항목을 기준으로 일치 여부를 확인할 수 있습니다. IP 주소 집합(특정 IP 차단 또는 허용), 지리적 일치(특정 국가에서 발생한 요청 차단), 속도 기반 규칙(요청 속도를 초과한 IP 차단 — 플러드 보호), 관리형 규칙 그룹(OWASP 상위 10개 위협, AWS Threat Intel, Bot Control에 대한 사전 작성 규칙), 사용자 지정 규칙(모든 HTTP 구성 요소를 기준으로 일치). WAF ACL(Web ACL)에는 규칙이 포함되며 하나 이상의 리소스에 적용됩니다.
# Create WAF Web ACL
aws wafv2 create-web-acl \
--name 'prod-web-acl' \
--scope CLOUDFRONT \
--region us-east-1 \
--default-action Allow={} \
--rules '[{
"Name": "AWSManagedRulesCommonRuleSet",
"Priority": 1,
"OverrideAction": {"None": {}},
"Statement": {
"ManagedRuleGroupStatement": {
"VendorName": "AWS",
"Name": "AWSManagedRulesCommonRuleSet"
}
},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "CommonRuleSet"
}
}]' \
--visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=web-acl-metricsWAF 관리형 규칙 그룹
AWS 관리형 규칙 그룹은 AWS가 유지 관리하는 사전 작성 WAF 규칙 집합으로, 개별 규칙을 직접 작성하지 않아도 일반적인 위협으로부터 보호합니다. 주요 그룹은 다음과 같습니다. AWSManagedRulesCommonRuleSet — OWASP 상위 10개 위협(SQL injection, XSS, RFI, LFI)으로부터 보호합니다. AWSManagedRulesKnownBadInputsRuleSet — 알려진 악성 입력 패턴을 차단합니다. AWSManagedRulesAmazonIpReputationList — 평판이 나쁜 IP(봇넷 및 침해된 IP)를 차단합니다. AWSManagedRulesBotControlRuleSet — 스크래핑 봇과 자동화된 브라우저를 감지하고 차단합니다. 대부분의 WAF 배포는 사용자 지정 규칙을 추가하기 전에 이러한 관리형 그룹으로 시작합니다.
# Add IP reputation list managed rule group
aws wafv2 update-web-acl \
--name 'prod-web-acl' \
--scope CLOUDFRONT \
--id <acl-id> \
--lock-token <lock-token> \
--rules '[{
"Name": "AWSManagedRulesAmazonIpReputationList",
"Priority": 0,
"OverrideAction": {"None": {}},
"Statement": {
"ManagedRuleGroupStatement": {
"VendorName": "AWS",
"Name": "AWSManagedRulesAmazonIpReputationList"
}
}
}, ...existing_rules...]'WAF 속도 기반 규칙
AWS WAF의 속도 기반 규칙은 5분 동안 구성 가능한 요청 속도 임계값을 초과하는 IP 주소를 자동으로 차단합니다. 이는 다음 공격을 방어합니다. HTTP 플러드 공격(요청으로 서버를 과부하시키는 공격), 무차별 대입 공격(많은 로그인 시도), API 악용(스크래핑 또는 열거). IP별, IP와 요청 경로의 조합별(/login과 같은 특정 엔드포인트의 요청 속도 제한), 또는 사용자 지정 헤더별로 집계할 수 있습니다. 차단된 IP의 요청 속도가 임계값 아래로 내려가면 자동으로 차단이 해제되므로 수동 개입이 필요하지 않습니다.
# Create rate-based rule for login endpoint
aws wafv2 update-web-acl \
--rules '[{
"Name": "RateLimitLogin",
"Priority": 2,
"Action": {"Block": {}},
"Statement": {
"RateBasedStatement": {
"Limit": 100,
"AggregateKeyType": "IP",
"ScopeDownStatement": {
"ByteMatchStatement": {
"SearchString": "/api/login",
"FieldToMatch": {"UriPath": {}},
"TextTransformations": [{"Priority": 0, "Type": "LOWERCASE"}],
"PositionalConstraint": "STARTS_WITH"
}
}
}
}
}]'AWS Shield Standard 및 Advanced
AWS Shield Standard는 모든 AWS 고객에게 추가 비용 없이 제공되는 자동 DDoS 보호 기능입니다. 계층 3(네트워크) 및 계층 4(전송)에서 발생하는 가장 일반적인 DDoS 공격인 SYN 플러드, UDP 플러드 및 반사 공격을 방어합니다. AWS Shield Advanced는 EC2, ALB, CloudFront, Global Accelerator 및 Route 53에서 계층 3, 4, 7 공격에 대한 향상된 보호를 제공합니다. Shield Advanced에는 AWS DDoS Response Team(DRT) 지원, 비용 보호(DDoS와 관련된 확장 요금 환급), 실시간 지표 및 고급 공격 포렌식이 포함됩니다. Shield Advanced의 비용은 월 $3,000에 데이터 전송 요금이 추가됩니다.
# Enable Shield Advanced protection on ALB
aws shield create-protection \
--name 'prod-alb-protection' \
--resource-arn arn:aws:elasticloadbalancing:us-east-1:123:loadbalancer/app/prod-alb/abc
# Associate with a WAF Web ACL for layer-7 protection
aws shield associate-drt-log-bucket \
--log-bucket my-shield-logs
# With Shield Advanced:
# - DDoS events detected and mitigated automatically
# - DRT can tune WAF rules during active attacks
# - Real-time CloudWatch dashboard
# - AWS will refund EC2/ELB/CloudFront scaling costs from DDoSAWS Network Firewall
AWS Network Firewall은 VPC에 배포하여 트래픽을 검사하고 필터링하는 상태 저장 관리형 네트워크 방화벽 서비스입니다. Security Groups(상태 저장, 리소스 수준) 및 NACLs(상태 비저장, 서브넷 수준)와 달리 Network Firewall은 다음 기능을 제공합니다. 심층 패킷 검사(DPI), 상태 저장 연결 추적, 도메인 필터링(도메인 이름 또는 패턴으로 차단), IPS(침입 방지 시스템) 규칙(Suricata 호환 규칙 형식 사용), 송신 트래픽 필터링(EC2 인스턴스가 인터넷에서 호출할 수 있는 대상 제어). 각 AZ의 전용 방화벽 서브넷에 Network Firewall을 배포합니다.
# Create Network Firewall
aws network-firewall create-firewall \
--firewall-name prod-vpc-firewall \
--firewall-policy-arn arn:aws:network-firewall:us-east-1:123:firewall-policy/my-policy \
--vpc-id vpc-12345 \
--subnet-mappings '[{"SubnetId":"subnet-firewall-AZ1"},{"SubnetId":"subnet-firewall-AZ2"}]'
# Network Firewall topology:
# Internet -> IGW -> Firewall subnet (Network FW) -> App subnet
# Egress: App subnet -> Firewall subnet (Network FW) -> IGW -> InternetNetwork Firewall 규칙 그룹
Network Firewall은 규칙 그룹을 사용하여 필터링 논리를 정의합니다. 상태 비저장 규칙 그룹은 연결을 추적하지 않고 패킷을 처리하며, NACL과 비슷하지만 더 유연합니다. 상태 저장 규칙 그룹은 TCP 연결 상태를 추적하고 전체 HTTP/TLS 세션을 검사합니다. 규칙은 세 가지 방식으로 작성할 수 있습니다. 5-튜플 규칙(소스 IP, 대상 IP, 프로토콜, 소스 포트, 대상 포트), 도메인 목록 규칙(FQDN별 허용 또는 거부), Suricata 호환 IPS 규칙(패턴 일치 및 프로토콜 검사를 지원하는 가장 강력한 방식). AWS는 일반적인 위협에 대응하는 관리형 규칙 그룹을 제공합니다.
# Create domain list rule group (egress filtering)
aws network-firewall create-rule-group \
--rule-group-name 'allow-egress-domains' \
--type STATEFUL \
--capacity 100 \
--rules-source '{
"RulesSourceList": {
"Targets": [
"amazonaws.com",
"example.com",
"*.npmjs.com"
],
"TargetTypes": ["HTTP_HOST","TLS_SNI"],
"GeneratedRulesType": "ALLOWLIST"
}
}'
# Block all other egress traffic by default
# Prevents EC2 from calling malicious external domainsWAF, Shield 및 Network Firewall 비교
세 서비스는 서로 다른 사용 사례에 대응하며 대체 관계가 아니라 상호 보완 관계입니다. WAF — 계층 7 HTTP 검사, 애플리케이션 공격(SQLi, XSS) 차단, 속도 제한 및 봇 제어를 제공합니다. CloudFront 또는 ALB에 배포합니다. Shield — DDoS 완화 기능으로 대규모 트래픽 공격으로부터 인프라를 보호합니다. Shield Standard는 항상 활성화되어 있고 Advanced는 전문 팀 지원을 추가로 제공합니다. Network Firewall — 계층 3~7 VPC 트래픽 제어, 상태 저장 검사, 도메인 필터링 및 IPS/IDS를 제공합니다. VPC 서브넷 내부에 배포합니다. 세 서비스를 함께 사용하십시오. Network Firewall은 VPC 수준의 트래픽을 제어하고, WAF는 애플리케이션 요청을 필터링하며, Shield는 DDoS를 완화합니다.
# Comparison table:
# Service Scope Layer Use Case
# AWS WAF Edge/ALB 7 App attacks, rate limits, bots
# Shield Standard All 3-4 Auto DDoS mitigation (free)
# Shield Advanced All 3-7 Enhanced DDoS + DRT support
# Network Firewall VPC 3-7 Stateful inspection, IPS, egress
# SAA-C03 exam keywords:
# 'SQL injection protection' -> WAF
# 'DDoS protection' -> Shield
# 'Block EC2 from calling external IPs' -> Network Firewall
# 'Block requests from country X' -> WAF geo-matchWAF 로깅 및 분석
WAF는 샘플링된 모든 요청(5개 중 1개) 또는 모든 요청을 CloudWatch Logs, S3 또는 Kinesis Data Firehose에 기록할 수 있습니다. 로그에는 전체 요청 헤더, IP 주소, 국가, 일치한 규칙 및 수행된 작업(ALLOW/BLOCK/COUNT)이 포함됩니다. WAF 로그는 다음과 같은 용도로 사용합니다. 공격 조사 — 차단된 요청을 정확히 확인합니다. 규칙 조정 — 오탐(정상 요청이 차단되는 경우)을 식별하고 예외를 추가합니다. 새로운 위협 감지 — 차단된 요청의 패턴에서 새로운 공격 경로를 파악할 수 있습니다. 새 규칙은 BLOCK으로 전환하기 전에 COUNT 모드를 활성화하여 정상 트래픽을 차단하지 않는지 검증합니다.
# Enable WAF logging to Kinesis Firehose
aws wafv2 put-logging-configuration \
--logging-configuration '{
"ResourceArn": "arn:aws:wafv2:us-east-1:123:global/webacl/prod-web-acl/abc",
"LogDestinationConfigs": [
"arn:aws:firehose:us-east-1:123:deliverystream/waf-logs"
],
"LoggingFilter": {
"DefaultBehavior": "KEEP",
"Filters": [{
"Behavior": "KEEP",
"Conditions": [{"ActionCondition":{"Action":"BLOCK"}}],
"Requirement": "MEETS_ANY"
}]
}
}'WAF 배포 아키텍처 패턴
AWS WAF를 올바르게 배포하려면 아키텍처에서 어디에 연결해야 하는지 이해해야 합니다. 인터넷에 공개된 애플리케이션의 경우 트래픽이 오리진에 도달하기 전에 엣지에서 검사하도록 CloudFront에 WAF를 연결합니다. 이렇게 하면 공격이 오리진 대역폭을 소모하기 전에 차단할 수 있습니다. 내부 API에 사용하거나 CloudFront를 사용하지 않는 경우에는 WAF를 ALB에 연결합니다. API Gateway를 통해 노출되는 API의 경우에는 API Gateway 수준에서 WAF를 연결할 수 있습니다. 여러 리소스에 WAF를 동시에 연결할 수도 있습니다. 예를 들어 CloudFront 배포와 그 뒤에 있는 ALB에 모두 연결하면 심층 방어가 가능하지만, 검사 비용은 두 배가 됩니다.
# WAF attachment points:
# 1. CloudFront distribution (global edge, CLOUDFRONT scope)
aws wafv2 associate-web-acl \
--web-acl-arn arn:aws:wafv2:us-east-1:123:global/webacl/my-acl/abc \
--resource-arn arn:aws:cloudfront::123:distribution/EXAMPLEID
# 2. ALB (regional, REGIONAL scope)
aws wafv2 associate-web-acl \
--web-acl-arn arn:aws:wafv2:us-east-1:123:regional/webacl/my-acl/xyz \
--resource-arn arn:aws:elasticloadbalancing:us-east-1:123:loadbalancer/app/my-alb/abc
# 3. API Gateway REST API
# 4. AppSync GraphQL API
# 5. Amazon Cognito User Pool멀티 계정 WAF를 위한 Firewall Manager
AWS Firewall Manager는 AWS Organization의 모든 계정에서 WAF, Shield Advanced, Network Firewall, 보안 그룹 정책을 중앙에서 관리합니다. Firewall Manager에서 WAF 규칙을 한 번 정의하면 모든 멤버 계정의 ALB, CloudFront 배포, API Gateway에 자동으로 적용되며 새로 생성된 리소스에도 적용됩니다. 멤버 계정에서 새 ALB를 배포하면 Firewall Manager가 WAF Web ACL을 자동으로 연결합니다. 따라서 각 팀이 WAF를 올바르게 구성할 필요 없이 조직 전체에서 일관된 보안 정책을 적용할 수 있습니다.
# Create Firewall Manager WAF policy
aws fms put-policy \
--policy '{
"PolicyName": "org-wide-waf-policy",
"SecurityServicePolicyData": {
"Type": "WAFV2",
"ManagedServiceData": "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"managedRuleGroupIdentifier\":{\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"excludeRules\":[],\"ruleGroupType\":\"ManagedRuleGroup\"}]}"
},
"ResourceType": "AWS::ElasticLoadBalancingV2::LoadBalancer",
"IncludeMap": {"ACCOUNT": []},
"ExcludeResourceTags": false,
"RemediationEnabled": true
}'빠른 확인
이 레슨에서 다룬 AWS Solutions Architect (SAA-C03) 개념에 대한 이해도를 확인해 보십시오.
레슨 요약
이 레슨에서는 다음을 배웠습니다. AWS WAF는 레이어 7 HTTP 트래픽을 필터링하여 SQL 인젝션, XSS, 봇을 차단하고 악성 IP의 요청을 속도 제한합니다. 또한 Shield Standard는 레이어 3/4 DDoS를 자동으로 방어하고, Shield Advanced는 대응 팀 지원과 비용 보호를 추가로 제공합니다. 그리고 Network Firewall은 도메인 필터링과 IPS 규칙을 사용하여 VPC 수준에서 상태 저장 트래픽 검사를 제공합니다. Firewall Manager는 모든 계정에 걸쳐 정책을 적용합니다. 보안 아키텍처 섹션을 완료하신 것을 축하합니다!
자주 묻는 질문
“WAF, Shield 및 Network Firewall” 강의는 무료인가요?
네 — “WAF, Shield 및 Network Firewall” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“WAF, Shield 및 Network Firewall”에서 뭘 배우나요?
AWS WAF로 OWASP 상위 10개 공격을 차단하고, Shield Standard 및 Advanced로 DDoS 공격을 방어하며, VPC에 상태 저장 Network Firewall을 배포합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“WAF, Shield 및 Network Firewall” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- KMS, ACM 및 암호화 패턴
- GuardDuty, Inspector 및 Macie
- Secrets Manager 및 Parameter Store
- WAF, Shield 및 Network Firewall