"네트워크 ACL(액세스 제어 목록)은 1개 이상의 서브넷 내부와 외부의 트래픽을 제어하기 위한 방확벽 역할을 하는 VPC를 위한 선택적 보안 계층입니다"
- 보안 그룹처럼 방화벽 역할을 담당
- 서브넷 단위
인스턴스 단위로 제어 불가능
다양한 서브넷에 연동 가능 (1:N)
- 포트 및 아이피를 직접 Deny 가능
외부 공격을 받는 상황 등 특정 아이피를 블록하고 싶을 때 사용
- Stateless
들어오는 트래픽과 나가는 트래픽을 구분하지 않음
즉 일반적으로 Outbound에 Ephemeral Port(임시 포트) 범위를 열어 주어야 정상적으로 통신 가능
규칙 번호
: 규칙에 부여되는 고유 숫자이며 규치깅 평가되는 순서 (낮은 번호부터)AWS 추천은 100단위 증가
유형
: 트래픽 유형(예: ssh = 22, DNS = 53, UDP = 17 등)프로토콜
: 통신 프로토콜 (예: TCP, UDP, SMP ...)포트 범위
: 허용 혹은 거부할 포트 범위소스
: IP 주소의 CIDR 블록허용/거부
: 허용 혹은 거부 여부
80번 포트로 들어오는112.12.35.4/32
IP를 차단하기 위해서 규칙순서를 위와 같이 정의하면 규칙번호가 낮은 100번에서 모든 IP 접속을 허용하였기 때문에 해당 IP는 정상적으로 접속할 수 있게 됩니다. 즉 허용 범위가 낮은 순서부터 규칙번호를 먼저 부여하여야 합니다.
따라서 위와 같이 규칙 번호를 100번으로 부여하게 된다면 정상적으로112.12.35.4/32
IP 유저를 차단하여 해당 유저는 접속할 수 없게 됩니다.
112.12.35.4/32
IP의 유저가 80번 포트는 차단하고 3306 포트로 들어오는 접속만 허용하고 싶다면 위와 같이 규칙 번호를 부여합니다. 규칙 번호를 부여할 때는 확장성을 고려하여 규칙 번호를 부여할 때는 다른 규칙 번호를 부여할 때를 생각하여 여유를 두어 부여해야 합니다.
- Stateless 방화벽이기 때문에 원활한 통신을 위해서는 Outbound도 신경을 써야 한다.
- 임시 포트 Allow
- Linux:
32768
~61000
- Windows
1025
~5000(XP)
,49152
~65535 (Vista 이상부터)
- 서브넷에서 나가거나 들어오는 트래픽에만 적용
- 즉 서브넷 내부의 트래픽에 대해서는 적용되지 않음
- 다양한 서브넷으로 구성되어 있는 멀티 티어 아키텍처라면 더 많은 고민이 필요함
- VPC 생성시, 혹은 AWS 계정 생성시 주어지는 VPC에 기본 하나 제공
- 모든 트래픽 Allow
- 단 직접 생성하는 NACL의 경우 모든 트래픽 Deny
- 하나의 서브넷은 하나의 NACL만 연동 가능, 단 하나의 NACL은 여러 서브넷에 연동 가능