Network & Server Factory

개인 공부 기록

Cloud/Azure

[Azure] Azure Firewall, NSG, WAF 역할 정리

1nfra 2026. 9. 24. 20:15
NSG는 서브넷과 NIC에서 IP와 포트로 거르는 L4 방화벽, Azure Firewall은 Hub에서 VNet 간 통신과 인터넷 출구를 FQDN까지 검사하는 관리형 방화벽, WAF는 웹 요청 내용을 보고 SQL 인젝션 같은 공격을 막는 L7 방화벽입니다. 셋은 대체 관계가 아니라 막는 위치가 다르기 때문에 함께 씁니다.

1. 세 가지를 모두 쓰는 이유

Azure에서 "방화벽"이라고 부르는 서비스가 여러 개라 처음에는 무엇을 써야 할지 헷갈립니다. 온프레미스에 비유하면 NSG는 스위치와 서버의 ACL, Azure Firewall은 데이터센터 경계의 방화벽 장비, WAF는 웹 서버 앞의 웹 방화벽 장비에 가깝습니다.

 

중요한 점은 각자 볼 수 있는 정보가 다르다는 것입니다. NSG는 출발지, 목적지, 포트만 보고, Azure Firewall은 여기에 도메인 이름(FQDN)과 위협 정보까지 보며, WAF는 HTTP 요청의 URL, 헤더, 본문을 봅니다. 그래서 한 가지만 쓰면 다른 계층의 공격이나 유출 경로가 비게 됩니다.

 

비교 항목 NSG Azure Firewall WAF
계층 L3~L4 L3~L7 L7 HTTP/HTTPS
붙는 위치 서브넷, NIC Hub VNet
AzureFirewallSubnet
Application Gateway
Front Door
규칙 기준 IP, 포트, 프로토콜
서비스 태그, ASG
IP, 포트, FQDN
위협 인텔리전스
OWASP 기반 관리 규칙
사용자 지정 규칙
주로 막는 것 허용하지 않은 포트 접근 VNet 간 통신, 인터넷 출구 SQL 인젝션, XSS, 봇
상태 저장 요청 단위 검사

2. 함께 쓰는 구성

인바운드 웹 트래픽은 Application Gateway의 WAF가, 아웃바운드 트래픽은 Azure Firewall이 검사하는 병렬 구성

 

Microsoft 아키텍처 센터는 Application Gateway와 Azure Firewall을 나란히 두는 병렬 구성을 흔한 설계로 소개합니다. 인터넷에서 들어오는 HTTPS 요청은 WAF가 켜진 Application Gateway가 받아 Spoke의 VM으로 보내고, VM에서 인터넷으로 나가는 트래픽은 UDR로 Azure Firewall을 거치게 합니다. 이 구성은 WAF가 웹 공격을 막고, 방화벽이 출구를 통제하며, NSG가 VM 앞에서 마지막으로 포트를 좁히는 구조입니다.

 

방화벽이 모든 인바운드 트래픽까지 검사해야 한다면(IDPS, Premium의 TLS 검사) Application Gateway 뒤에 Azure Firewall을 두는 구성도 있습니다. 반대로 방화벽을 Application Gateway 앞에 두면 방화벽의 SNAT 때문에 원래 클라이언트 IP가 사라져 활용도가 낮습니다.

3. NSG

NSG(네트워크 보안 그룹)는 출발지, 출발지 포트, 목적지, 목적지 포트, 프로토콜 다섯 가지로 트래픽을 거르는 상태 저장 필터입니다. 우선순위는 100~4096이고 숫자가 작을수록 먼저 평가하며, 한 번 맞는 규칙이 있으면 뒤 규칙은 보지 않습니다. 삭제할 수 없는 기본 규칙(AllowVNetInBound, AllowAzureLoadBalancerInBound, DenyAllInbound 등)이 65000번대에 있습니다.

서브넷과 NIC에 모두 NSG가 있을 때 평가 순서

 

서브넷과 NIC 양쪽에 NSG를 붙일 수 있는데, 인바운드는 서브넷 NSG 다음 NIC NSG, 아웃바운드는 NIC NSG 다음 서브넷 NSG 순서로 평가하고 양쪽 모두 허용해야 통과합니다. 관리가 복잡해지므로 저는 서브넷 NSG 하나로 관리하고, NIC NSG는 특정 VM만 예외가 필요할 때 쓰는 쪽을 권합니다.

4. Azure Firewall과 WAF

4.1 Azure Firewall

Azure Firewall은 고가용성이 내장된 관리형 상태 저장 방화벽입니다. 규칙은 DNAT, 네트워크, 애플리케이션 규칙 세 종류이고 우선순위와 상관없이 항상 이 순서로 처리합니다. 배포하려면 이름이 AzureFirewallSubnet인 /26 서브넷이 필요합니다.

 

SKU 처리량 주요 기능
Basic 최대 250 Mbps 위협 인텔리전스 경고만
애플리케이션 규칙 FQDN 필터링
Standard 최대 30 Gbps 위협 인텔리전스 경고와 차단
웹 카테고리, 네트워크 규칙 FQDN
Premium 최대 100 Gbps Standard 기능에 더해
TLS 검사, IDPS, URL 필터링

4.2 WAF

WAF는 Application Gateway(리전)와 Azure Front Door(글로벌)에 붙여 씁니다. Microsoft가 관리하는 규칙 집합(DRS, Default Rule Set)이 OWASP 공격 유형을 막고, 사용자 지정 규칙으로 국가 차단이나 속도 제한을 추가합니다. Application Gateway에서는 OWASP CRS 3.3.4 기반 DRS 2.2를 권장합니다.

 

처음 적용할 때는 감지(Detection) 모드로 로그만 쌓아 정상 요청이 걸리는지 확인한 뒤 방지(Prevention) 모드로 바꾸는 편이 안전합니다. 방지 모드에서는 규칙에 걸린 요청에 403을 돌려줍니다.

5. Azure CLI로 만들어 보기

5.1 NSG 규칙

RG=rg-app
az network nsg create --resource-group $RG --name nsg-snet-app

# Application Gateway 서브넷에서 오는 443만 허용
az network nsg rule create --resource-group $RG --nsg-name nsg-snet-app \
  --name Allow-AppGw-443 --priority 100 --direction Inbound --access Allow \
  --protocol Tcp --source-address-prefixes 10.0.2.0/24 \
  --destination-port-ranges 443

az network vnet subnet update --resource-group $RG --vnet-name vnet-spoke \
  --name snet-app --network-security-group nsg-snet-app

5.2 인터넷 출구를 Azure Firewall로

az network route-table create --resource-group $RG --name rt-spoke \
  --disable-bgp-route-propagation true

# 0.0.0.0/0의 다음 홉을 Azure Firewall 사설 IP로
az network route-table route create --resource-group $RG --route-table-name rt-spoke \
  --name default-to-fw --address-prefix 0.0.0.0/0 \
  --next-hop-type VirtualAppliance --next-hop-ip-address 10.0.1.4

az network vnet subnet update --resource-group $RG --vnet-name vnet-spoke \
  --name snet-app --route-table rt-spoke

6. 운영 시 주의점

항목 확인할 것
NSG 흐름 로그 NSG 흐름 로그는 2027년 9월 30일 종료 예정이고 새로 만들 수 없습니다. VNet 흐름 로그로 옮깁니다.
AzureFirewallSubnet 이 서브넷에는 NSG를 붙일 수 없습니다. 방화벽 정책으로 통제합니다.
강제 터널링 온프레미스로 인터넷 출구를 보내려면 AzureFirewallManagementSubnet과 관리 NIC가 필요합니다.
WAF 도입 감지 모드로 오탐을 먼저 확인한 뒤 방지 모드로 바꿉니다.
Application Gateway v1 v1과 WAF v1은 2026년 4월 28일 종료되었습니다. v2를 씁니다.

7. 정리

  • NSG는 서브넷과 NIC의 포트 필터, Azure Firewall은 Hub의 중앙 방화벽, WAF는 웹 요청 검사기입니다.
  • 인바운드 웹은 Application Gateway의 WAF, 아웃바운드는 Azure Firewall, VM 앞은 NSG로 나누는 병렬 구성이 기본입니다.
  • NSG는 서브넷 단위로 단순하게, WAF는 감지 모드부터 시작하는 것을 권합니다.

참고

728x90
서울
--:--:--
-전체 글
-카테고리
오늘 방문