NACL이란? (Network Access Control List)
NACL은 AWS VPC에서 서브넷(Subnet) 단위로 트래픽을 제어하는 네트워크 방화벽이다.
Security Group(SG)보다 한 단계 바깥에서 동작하는 보안 계층이라고 보면 된다.
1) NACL이 왜 필요한가 (배경)
SG는:
- 리소스 단위
- Allow 규칙만
- 상태 기반(Stateful)
→ 정밀하지만, “광역 차단”에는 한계가 있다.
NACL은:
- 특정 IP 대역 차단
- 전체 Subnet 레벨 통제
- 네트워크 경계 보안
을 위해 존재한다.
2) NACL 한 줄 정의
NACL은 VPC 서브넷 단위에서 동작하는 Stateless 네트워크 방화벽이다.
3) NACL의 핵심 특징
(1) Stateless (무상태)
- 요청(Inbound) 허용해도
- 응답(Outbound)은 별도 허용 필요
(2) Allow + Deny 규칙 존재
- 명시적 Deny 가능
- 보안 정책을 강하게 적용 가능
(3) Subnet 단위 적용
- Subnet에 속한 모든 리소스에 공통 적용
4) NACL 규칙 구성 요소
규칙 항목
- Rule Number (우선순위)
- Protocol (TCP/UDP/ICMP)
- Port Range
- Source/Destination (CIDR)
- Allow / Deny
⚠️ Rule Number가 낮을수록 우선순위 높음
5) NACL 동작 방식
트래픽 흐름
[Internet]
↓
[NACL (Subnet)]
↓
[Security Group]
↓
[EC2]
- 먼저 NACL
- 그 다음 SG
- 둘 다 허용해야 통과
6) NACL vs SG
| 항목 | NACL | SG |
| 적용 단위 | Subnet | 리소스 |
| 상태 | Stateless | Stateful |
| 규칙 | Allow + Deny | Allow only |
| 우선순위 | 있음 | 없음 |
| 관리 난이도 | 높음 | 낮음 |
7) 실무에서 NACL을 어떻게 쓰나
보통 이렇게 사용함
- 기본 NACL: 거의 열어둠
- SG로 세밀한 접근 제어
NACL을 쓰는 경우
- 특정 IP 대역 전체 차단
- 보안 감사/규정 요구사항
- DDoS/비정상 트래픽 1차 차단
8) NACL 설정 예시
Public Subnet NACL
- Inbound
- 80/443 Allow (0.0.0.0/0)
- 22 Allow (회사 IP)
- Outbound
- 1024–65535 Allow (응답 트래픽)
Private Subnet NACL
- Inbound
- ALB Subnet CIDR만 Allow
- Outbound
- DB 포트 Allow
9) NACL에서 자주 발생하는 실수 ❌
❌ Inbound만 열고 Outbound 안 열어서 통신 실패
❌ Rule Number 충돌
❌ SG와 중복 설정으로 장애 발생
10) NACL 설계 원칙 (요약)
- 넓게 제어: NACL
- 세밀하게 제어: SG
보안은 “겹겹이” 설계한다.
'Infra&Cloud > AWS' 카테고리의 다른 글
| AWS-RDS(Relational Database Service) (0) | 2026.02.08 |
|---|---|
| AWS-SG(Security Group) (0) | 2026.02.08 |
| AWS-Public/Private Subnet (0) | 2026.02.08 |
| AWS-VPC(Virtual Private Cloud) (0) | 2026.02.08 |
| AWS-NAT Gateway (0) | 2026.02.08 |