보안 그룹(Security Group)
보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 합니다.
- Network Access Control List(NACL)와 함께 방화벽의 역할을 하는 서비스
- Port 허용
- 기본적으로 모든 포트는 비활성화
- 선택적으로 트래픽이 지나갈 수 있는 Port와 Source를 설정 가능
- Deny는 불가능 → NACL로 가능함
- 인스턴스 단위
- 하나의 인스턴스에 하나 이상의 SG 설정 가능
- NACL의 경우 서브넷 단위
- 설정된 인스턴스는 설정한 모든 SG의 룰을 적용 받음
- 기본 5개, 최대 16개
Stateful
- 보안그룹은 Stateful
- Inbound로 들어온 트래픽이 별 다른 Outbound 설정 없이 나갈 수 있음
- NACL은 Stateless
Stateful한 방식의 경우, Outbound Allow가 none 이지만, 이미 56630 포트를 사용하여 80포트로 요청이 들어온 경우, 나갈때는 별다른 제지를 하지 않는다.
⇒ 방금 들어온 트래픽이기 때문
들어온 것과 나간 것은 별개로. 전혀 상관 없음
그렇기 때문에 Outbound Allow 포트를 더욱 신경써야 한다.
네트워크 ACL (NACL)
- 보안그룹처럼 방화벽 역할을 담당
- 서브넷 단위
- 서브넷 단위포트 및 아이피를 직접 Deny 가능
- 외부 공격을 받는 상황 등 특정 아이피를 블록하고 싶을 때 사용
- 순서대로 규칙 평가 (낮은 숫자부터)
NACL 규칙
- 규칙 번호: 규칙에 부여되는 고유 숫자이며 규칙이 평가되는 순서. (낮은 번호부터)
- AWS 추천은 100단위 증가
- 유형: 미리 지정된 프로토콜. 선택 시 AWS에서 잘 알려진 포트(Well Known Port)이 규칙에 지정됨
- 프로토콜: 통신 프로토콜 (예: TCP, UDP, SMP, …)
- 포트 범위: 허용 혹은 거부할 포트 범위
- 소스: IP 주소의 CIDR 블록
- 허용/거부: 허용 혹은 거부 여부
AWS NACL 규칙 순서
규칙 번호는 낮은 순서대로 적용되기 때문에, 위의 상황에서는 Allow가 되어버린다.
해당 이미지에서는 Deny가 된다.
Virtual Private Cloud(VPC) 구조
정리
- 보안 그룹
- 가상의 방화벽
- 인스턴스 단위
- Port의 허용만 가능 (Deny는 NACL에서 가능)
- Stateful!
- Network Access Control List(NACL)
- 가상의 방화벽
- 서브넷 단위
- Port의 허용과 Deny 가능