AWS

[AWS] Security Group(SG) & Network Access Control List(NACL)

su''@ 2025. 2. 23. 22:59

보안 그룹(Security Group)

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

 

보안 그룹

  • Network Access Control List(NACL)와 함께 방화벽의 역할을 하는 서비스
  • Port 허용 • 기본적으로 모든 포트는 비활성화
  • 선택적으로 트래픽이 지나갈 수 있는 Port와 Source를 설정 가능
  • Deny는 불가능 -> NACL 로 가능함 • 인스턴스 단위(정확히는 ENI단위)
  • 하나의 인스턴스에 하나 이상의 SG설정 가능
  • NACL의 경우 서브넷 단위

  • 예를 들어 보안그룹A(허용 포트: 8080) 과 보안그룹B(허용포트: 443)이 적용되는 인스턴스는 8080, 443포트를 허용해 외부에서 8080과 443 트래픽을 받게 된다.

보안그룹의 특징

  • 보안그룹은 Stateful • Inbound로 들어온 트래픽이 별 다른Outbound설정 없이 나갈 수 있음

보안 그룹의 Source

· IP Range(CIDR)

  • 접두사 목록(Prefix List)
  • 하나 이상의 CIDR 블록의 집합
  • 보안 그룹 혹은 Route Table에서 많은 대상을 참조하기 위해 사용
  • 두 가지 종류
    • 고객 관리형 : 직접 IP주소를 생성/수정/삭제 할 수 있으며 다른 계정과도 공유 가능
    • AWS 관리형 : AWS의 서비스들을 위한 IP목록. 수정, 삭제, 업데이트가 불가능함
      • DynamoDB, S3, CloudFront
  • IPv4, IPv6 둘 다 사용 가능, 단 한 접두사 목록에 두 가지 타입을 동시에 사용 불가능
  • 생성 시점에 최대 엔트리 숫자를 지정(이후 변경 가능)

• 다른 보안그룹 (보안그룹 참조)

  • 보안그룹에 속해있는 ASG의 인스턴스 ip는 계속 변경될 수 있음을 알고 있는 것이 중요!
  • 이때 보안그룹의 참조를 사용하게 되면 해당 보안그룹에 속해있는 모든 instance들 혹은 다른 요소의 트래픽을 허용시킬 수 있음.

네트워크 ACL(NACL)

  • 보안그룹처럼 방화벽 역할을 담당
  •  NACL은 Stateless
  • 서브넷 단위
  • 포트 및 아이피를 직접 Deny 가능
  • 외부 공격을 받는 상황 등 특정 아이피를 블록하고 싶을 때 사용
  • NACL 을 사용하는 경우에는 SG와 다르게 반드시 emphemeral 포트를 outbound로 허용해줘야한다.

출처 : https://www.youtube.com/watch?v=0hXYfi55_Ww