개발 일기

[AWS] VPC - 보안그룹과 NACL 본문

DevOps/AWS Services

[AWS] VPC - 보안그룹과 NACL

개발 일기장 주인 2024. 11. 23. 20:06

보안 그룹(Security Group)

"보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 한다."

  • NACL과 함께 방화벽의 역할을 하는 서비스
  • Port 허용
    • 기본적으로 모든 포트는 비활성화
    • 선택적으로 트래픽이 지나갈 수 있는 Port와 Source(From) 설정 가능
    • Deny는 불가능하다 ➜ NACL로 가능
  • 인스턴스 단위
    • 하나의 인스턴스에 하나 이상의 SG설정 가능
    • NACL의 경우 서브넷 단위
    • 설정된 인스턴스는 설정한 모든 SG의 룰을 적용 받음
    • 기본 5개, 최대 16개

Inbound : 들어오는 포트 + 요청을 받는 포트
Outbound : 보내는 포트 + 응답을 보내야하는 포트

  • Stateful : 외부에서 서버로 들어오는 트래픽이 있을 때(예: HTTP 요청), 해당 요청에 대한 응답(아웃바운드)은 인바운드 규칙에 맞는 상태로 자동으로 허용
  • Stateless : 연결 상태를 추적하지 않으며, 모든 트래픽에 대해 응답 규칙을 별도로 정의

보안그룹은 Stateful하고 NACL은 Stateless하다.

 


네트워크 ACL(Network Access Control List)

  • 보안그룹 처럼 방화벽 역할을 담당
  • 서브넷 단위
  • 포트 및 아이피를 직접 Deny 가능. 외부 공격을 받는 상황 등 특정 아이피를 블록하고 싶을 때 사용
  • 순서대로 규칙 평가(낮은 숫자부터)

NACL 규칙

  1. 규칙 번호 : 규칙에 부여되는 고유 숫자이며 규칙이 평가되는 순서. (낮은 번호 부터). - AWS 추천은 100단위 증가
  2. 유형 : 미리 지정된 프로토콜. 선택 시 AWS에서 Well Known Port가 규칙에 지정됨
  3. 프로토콜 : 통신 프로토콜 ( TCP, UDP, SMP )
  4. 포트 범위 : 허용 혹은 거부할 포트 범위
  5. 소스 : IP 주소의 CIDR 블록
  6. 허용/거부 : 허용 혹은 거부 여부

 

112.12.35.4에서 DDOS 공격이 들어와서 Deny해야하는 경우 위와 같이 설정하게 되면 막을 수 없다.

왜냐하면 낮은 규칙 번호부터 검사를 하기 때문에 100번을 보고 허용하게된다. 그래서 100번과 200번의 내용을 바꿔야한다.

보면 보안그룹은 인스턴스 단위, NACL은 서브넷 단위!!