보안그룹과 NACL
✅ 보안 그룹 :: Security Group
- NACL :: Network Access Control List 와 함께 방화벽의 역할을 하는 서비스
- Port 허용
- 기본적으로 모든 포트는 비활성화
- 선택적으로 트래픽이 지나갈 수 있는 Port와 Source를 설정 가능
- Deny는 불가능 → NACL로 가능함
- 인스턴스 단위
- 하나의 인스턴스에 하나의 SG 설정 가능
- NACL의 경우 서브넷 단위
- 설정된 인스턴스는 설정한 모든 SG의 룰을 적용 받음
- 기본 5개, 최대 16개
✅ 보안 그룹의 Stateful
- 보안 그룹은 Stateful
- Inbound로 들어온 트래픽이 별 다른 Outbound 설정 없이 나갈 수 있음
- NACL은 Stateless
- Outbound가 none이라 하더라도 방금 전에 들어왔던 트래픽에 대해서 내보내 줌. 이게 Stateful
- 반대말인 Stateless는? 대표적으로 NACL.
- Outbound가 none 이면, 아까 전에 들어왔던 트래픽이라도, 그대로 내보내주는게 아니라 또 한번 체크를 해서 NACL은 트래픽을 내보내지 않는다.
결론 : Security Group은 Stateful 하고, NACL은 Stateless 하다.
✅ NACL :: Network Access Control List
- 보안그룹처럼 방화벽 역할을 담당
- 서브넷 단위
- Port 및 IP를 직접 Deny 가능
- 외부 공격을 받는 상황 등 특정 IP를 블록하고 싶을 때 사용한다.
- 순서대로 규칙 평가 (낮은 숫자부터)
✅ NACL 규칙
- 규칙 번호 : 규칙에 부여되는 고유 숫자이며 규칙이 평가되는 순서. (낮은 번호부터)
- AWS 추천은 100단위 증가
- 유형 : 미리 지정된 프로토콜. 선택 시 AWS에서 잘 알려진 포트 (Well Known Port)이 규칙에 저장됨
- 프로토콜 : 통신 프로토콜. (예 : TCP, UDP, SMP, ...)
- 소스 : IP 주소의 CIDR 블록
- 허용/거부 : 허용 혹은 거부 여부
1. 규칙번호 100번에 TCP 프로토콜로 80번 포트에 들어오는 것을 Allow
2. 200번에 TCP 80번 포트에 우리가 블록하고 싶은 IP를 Deny 처리함.
자 이렇게 하면 이 트래픽이 Deny가 되느냐? No.
→ 규칙번호는 작은 순서부터 평가가 되기 때문이다.
→ 규칙번호 100번에서 이미 통과가 되었기 때문에 끝!
이렇게 만들어야 한다.