📌 WAF을 Private Subnet에 배치하는 이유
WAF를 프라이빗 서브넷에 배치하는 이유는 주로 다음과 같은 보안적인 목적과 트래픽 흐름 상의 설계 목적 때문
- 외부로부터 WAF를 직접 접근 불가능하게 하기 위함
- 보안 장비 자체(WAF)가 외부 인터넷에서 직접적으로 접근되지 않도록 보호할 필요가 있음
- 인터넷에 직접 노출되면 WAF 자체가 공격의 대상이 될 수 있으므로 반드시 내부(프라이빗) 환경에 배치
- 트래픽은 반드시 ALB를 통해서만 들어오도록 제한
- HTTP/HTTPS 트래픽은 ALB에서 종결되고 이후 검증된 트래픽만이 WAF를 거쳐 내부로 전달
- ALB는 외부에서 유입되는 트래픽을 첫 번째로 필터링하는 관문, 이후 2차 필터링이 WAF에서 이루어짐
- 이중 보안 구조로 안전성 향상
- ALB에서 트래픽의 기본적인 보안, 즉 SSL Termination, 로드밸런싱을 수행한 뒤, 다시 한번 WAF에서 정교한 보안 검사(공격 패턴 탐지, OWASP 기반 공격 방지 등)를 수행
ALB에서 1차 기본 필터링 → WAF에서 2차 정밀 필터링 → 이 2단계가 바로 "이중 보안 구조"입니다.
- 보안 및 감사 용이성
- Private 서브넷 내에 위치시키면 네트워크 ACL, 보안 그룹 등으로 접근을 강력히 통제하고 로그 기록을 명확히 관리할 수 있어 보안 감사가 편리
📌 WAF와 UTM의 목적과 역할 차이
| 장비 |
역할 |
일반적인 배치 위치 |
WAF (웹 애플리케이션 방화벽) |
HTTP/HTTPS 트래픽에 대한 정밀한 웹 기반 공격 탐지 (OWASP Top10, 웹 공격 패턴 탐지 등) |
Private Subnet (일반적으로 외부 직접 접근 불가 위치) |
UTM (Unified Threat Management) |
다양한 프로토콜(TCP 등)을 포함한 범용 트래픽에 대한 보안 검사, 방화벽 정책, 침입 탐지/방지(IDS/IPS) 등 |
Public Subnet (인터넷 또는 외부망과 연결된 경로상의 위치) |
📌 UTM을 Public Subnet에 배치하는 이유
1️⃣ UTM은 원천적으로 외부 접근이 가능해야 함
- UTM은 다양한 프로토콜의 트래픽을 실시간 검사하기 위한 장비로 NLB를 통해 유입된 외부 트래픽을 직접 받아 검사 후 내부로 전달해야함
- UTM 자체가 인터넷 또는 외부망에서 접근 가능해야만 정상적으로 동작하므로 반드시 Public Subnet에 배치해야함
2️⃣ 트래픽의 투명성(Transparent Inspection)
- UTM은 일반적으로 인라인 구성을 사용하여 사용자와 내부 서버 간의 트래픽을 실시간 검사합니다.
- UTM을 Private subnet에 배치하면 추가적인 복잡한 라우팅이 필요하고 트래픽 처리 과정이 복잡해져 성능과 지연 문제가 발생
3️⃣ 일반 TCP 트래픽은 ALB에서 처리되지 않습니다.
- HTTP(S) 트래픽과 달리, 일반 TCP 트래픽(DB 접근 등)은 ALB가 아닌 NLB를 통해 직접 처리됩니다.
- 따라서 TCP 트래픽을 처리할 보안 장비(UTM)는 외부 트래픽 흐름상 Public subnet 위치가 가장 효율적이고 자연스럽습니다.
4️⃣ 일반적인 AWS 네트워크 보안 설계 가이드라인
- 실제 AWS 환경 구성에서 TCP 기반의 일반 트래픽 방화벽/보안장비(UTM)는
보통 Public subnet에서 NLB 뒤에 배치하여 구성하는 것이 AWS의 권장 Best Practice입니다.
→ 즉 외부 노출을 가정하고 설계된 보안 장비로 인터페이스 수준에서 방화벽 규칙과 네트워크 ACL을 엄격히 적용해 접근을 강력히 제한 필요
네트워크 장비(방화벽, UTM 등)를 트래픽 흐름상 반드시 통과하도록 배치하는 구성
즉, 장비를 우회하지 않고 반드시 해당 장비를 통과해야만 트래픽이 목적지까지 갈 수 있는 형태
반대 개념은 "아웃오브패스(Out-of-path)" 방식으로, 트래픽이 장비를 직접 거치지 않고 복제된 트래픽을 분석하는 구조
[사용자 PC]
↓
(트래픽 흐름)
↓
[방화벽 or UTM] → 공격 탐지/차단 가능
↓
(정상 트래픽만 통과)
↓
[서버(App/DB 등)]