| 항목 | 보안 그룹 (Security Group) | NACL (Network ACL) |
|---|---|---|
| 적용 대상 | 리소스의 네트워크 인터페이스 | 서브넷 단위 |
| 상태 기반 | 상태 기반 (Stateful) | 비상태 기반 (Stateless) |
| 규칙 허용/거부 | 허용만 가능 (거부 규칙 없음) | 허용 & 거부 둘 다 가능 |
| 우선순위 | 우선순위 없음 (모든 규칙 적용됨) | 규칙에 숫자 우선순위 있음 |
| 기본 동작 | 기본적으로 모든 트래픽 차단 → 허용 규칙만 추가 | 기본적으로 모든 트래픽 허용 또는 거부 (규칙에 따라 다름) |
✅ 보안 그룹은 상태 기반 (Stateful)
요청이 허용되면, 그에 대한 응답은 자동으로 허용
예시: EC2 인스턴스에 HTTP 요청(포트 80 인바운드)을 허용하면,
클라이언트에게 나가는 응답(아웃바운드 트래픽)은 따로 설정하지 않아도 자동으로 허용
➡️ 요청만 허용하면, 응답은 자동으로 통과
❎ NACL은 비상태 기반 (Stateless)
요청과 응답 각각 따로 허용해야 함
예시: 포트 80 인바운드 트래픽을 허용하더라도,
아웃바운드에서 포트 1024~65535 범위를 따로 열어주지 않으면
응답 트래픽이 차단될 수 있음
➡️ 인바운드, 아웃바운드 트래픽을 모두 명시적으로 설정해야 함
| 상황 | 권장 보안 방식 |
|---|---|
| EC2 인스턴스에 포트 기반 접근 제어 | 보안 그룹 |
| 응답 트래픽까지 자동 허용이 필요한 경우 | 보안 그룹 |
| 특정 IP를 완전히 차단하고 싶을 때 | NACL |
| 서브넷 전체에 대해 IP, 포트 기반 통제 필요 | NACL |