VPC 안의 패킷에는 두 개의 방화벽이 차례로 작용한다. 서브넷 경계에 있는 NACL(Network ACL)과 인스턴스(정확히는 ENI) 경계에 있는 Security Group이다. 이 둘은 비슷해 보이지만 작동 방식이 근본적으로 다르고, 그 차이가 시험에 가장 자주 등장하는 포인트다. 두 방화벽의 차이는 결국 stateful vs stateless, role-based vs network-based, whitelist-only vs blacklist-capable이라는 세 축에서 정리된다 — 그리고 이 세 축은 모든 방화벽 설계의 기본 분류 체계이기도 하다.
오늘은 SG vs NACL의 진짜 차이, 그리고 그 위에서 일어난 일을 사후 분석하게 해주는 VPC Flow Logs를 다룬다. 그리고 한 가지 더, Defense in Depth(심층 방어)의 관점에서 두 방화벽이 어떻게 보완재로 동작하는지를 본다.
[ Outside Internet / Other Instance ]
↓
Subnet 경계 NACL (Stateless)
↓
ENI 경계 Security Group (Stateful)
↓
[ EC2 Instance ]
들어오는 패킷은 NACL → SG 순으로 통과해야 도달한다. 나가는 패킷은 그 역순. 두 방화벽이 모두 허용해야 통신이 성립한다