AWS 방화벽 (Security group, NACL)

Googy·2023년 7월 16일
0
post-thumbnail

VPC와 NACL은 VPC 내부에서 적용할 수 있는 방화벽이다. 이 두 가지 방화벽에 대해서 알아보고 어떤 차이점이 있는지 비교해 보자.

보안 그룹 (Security group)

보안 그룹은 AWS 리소스 (EC2 인스턴스) 단위로 적용할 수 있는 방화벽이다. 인바운드/아웃바운드로 구분하여 방화벽 규칙을 지정할 수 있다. 보안 그룹에는 허용(Allow) 규칙만 존재한다. 기본적으로 모든 트래픽을 차단하고 있고, 허용된 트래픽만 이동할 수 있다.

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/security-groups.html

인바운드 규칙 (Inbound rule)

인바운드 규칙은 기본적으로 아무것도 등록되어 있지 않다. 따라서 EC2 인스턴스에 SSH로 접속하려면 TCP 22번 포트를 열어 줘야 한다. 소스는 0.0.0.0/0과 같이 모든 주소 (또는 특정 CIDR IP 범위)로 허용할 수도 있고 다른 보안 그룹을 지정할 수도 있다.

아웃바운드 규칙 (Outbound rule)

아웃바운드 규칙 역시 같은 방식으로 규칙을 추가하여 나가는 트래픽을 허용할 수 있다. 아웃바운드 규칙에는 기본적으로 모든 트래픽을 모든 대상으로 허용하는 규칙이 추가되어 있다.

Stateful

보안 그룹은 Stateful이라는 특성을 가진다. 트래픽이 오고 가는 상태를 기억하고 처리해 준다는 것이다.
예를 들어 인바운드 규칙으로 아무것도 등록되어 있지 않다면 어떤 트래픽도 리소스로 접근할 수 없다. 하지만 만약 아웃바운드 규칙으로 허용되어 나간 트래픽(Request)에 대한 응답(Response)은 들어올 수 있도록 허용된다.

NACL (Network ...)

NACL은 서브넷 단위로 적용할 수 있는 방화벽이다. NACL에는 허용 규칙과 거부 규칙이 모두 존재한다. 그리고 보안 그룹과 달리 Stateless하다. 즉 NACL 인바운드에서 허용되어 들어왔다 하더라도, 아웃바운드 규칙에서 거부되어 통신이 안될 수 있다.

NACL 규칙

  • NACL 규칙에는 Allow/Deny가 모두 존재한다.
  • 각 규칙의 번호(1 ~ 32766)가 낮을수록 우선순위가 높다.
  • 모든 NACL은 *번으로 모든 트래픽을 거부하는 규칙이 있다.
  • Default NACL에는 Inbound/Outbound의 100번 규칙으로 모든 트래픽을 허용하는 규칙이 있다.

*번은 마지막 규칙으로 우선순위가 가장 낮다.

NACL 주의사항: Stateless

  • 임시 포트 (Ephemeral port)

일반적으로 서버의 포트는 고정되어 있지만 클라이언트는 임시 포트 범위 중에서 랜덤으로 사용한다. 따라서 Stateless한 NACL에서는 임시 포트를 신경 써서 관리해야 한다. 예를 들어 서버 서브넷에는 아웃바운드로 클라이언트의 임시 포트 범위를 열어 주어야 한다.

보안 그룹 vs NACL

보안 그룹과 NACL 모두 논리적인 개념으로 하나를 가지고 여러 리소스에 연결하여 적용할 수 있다.

보안 그룹NACL
범위리소스 (인스턴스)서브넷
규칙Allow OnlyAllow / Deny
상태 저장StatefulStateless
profile
재밌는 걸 만들고 싶어요

4개의 댓글

comment-user-thumbnail
2023년 7월 16일

잘봤습니다.

1개의 답글
comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

1개의 답글