먼저 둘을 각각 설명함에 앞서 간단하게 설명해 보겠습니다

네트워크 ACL(Network ACL)과 보안 그룹(Security Group)은 AWS Virtual Private Cloud(VPC) 내에서 네트워크 트래픽을 제어하기 위해 사용되는 네트워크 보안 메커니즘입니다. 이 두 가지는 VPC에서 애플리케이션과 데이터를 보호하기 위해 다양한 레벨에서 트래픽을 필터링하는 데 사용됩니다.

네트워크 ACL(Network ACL)

1. 네트워크 ACL이란?

네트워크 ACL(Network Access Control List)은 VPC의 서브넷 레벨에서 작동하는 보안 계층으로, 들어오는(Inbound) 및 나가는(Outbound) 트래픽을 허용하거나 거부하는 규칙을 설정할 수 있습니다. 이를 통해 서브넷 수준에서 트래픽을 제어할 수 있습니다.

  • 특징:
    • 스테이트리스(Stateless): 요청과 응답을 따로 처리하며, 들어오는 트래픽과 나가는 트래픽에 대해 각각 명시적으로 규칙을 설정해야 합니다.
    • 서브넷 단위로 작동.
    • 규칙이 번호 순서(낮은 숫자부터)로 평가됩니다.

2. 네트워크 ACL의 사용법

  • 기본 ACL: 새로 생성한 VPC에는 자동으로 기본 네트워크 ACL이 생성됩니다.
    • 기본적으로 모든 트래픽을 허용(Allow)합니다.
  • 커스텀 ACL 생성:
    1. AWS 콘솔 > VPC > 네트워크 ACL 생성.
    2. 서브넷에 네트워크 ACL 연결.
    3. 인바운드 및 아웃바운드 규칙 추가(규칙 번호, 소스/목적지, 프로토콜, 포트 범위, 동작 설정).

예제 규칙:

규칙 번호유형프로토콜소스동작

100 HTTP (80) TCP 0.0.0.0/0 허용(Allow)
110 SSH (22) TCP 192.168.1.0/24 허용(Allow)
120 All Traffic All 0.0.0.0/0 거부(Deny)

 

3. 네트워크 ACL을 사용하는 경우

  • 대규모 서브넷 보안이 필요한 경우: 서브넷 내 모든 인스턴스에 공통으로 적용되는 보안 규칙이 필요한 경우.
  • 트래픽에 대한 기본적인 필터링: 여러 인스턴스에 대해 일괄적인 허용/거부 규칙을 설정하고 싶을 때.
  • 스테이트리스 방식이 필요한 경우: 요청과 응답 트래픽을 각각 제어하고 싶을 때.

 

보안 그룹(Security Group)

1. 보안 그룹이란?

보안 그룹(Security Group)은 VPC에서 인스턴스 수준에서 작동하는 보안 계층으로, 특정 인스턴스에 들어오고 나가는 네트워크 트래픽을 제어합니다.

  • 특징:
    • 스테이트풀(Stateful): 들어오는 트래픽이 허용되면 해당 트래픽의 응답은 자동으로 허용됩니다.
    • 인스턴스 단위로 작동.
    • 규칙 번호가 없으며, 모든 규칙이 동시에 평가됩니다.

2. 보안 그룹의 사용법

  • 기본 보안 그룹: 새로 생성된 VPC에는 기본 보안 그룹이 생성됩니다.
    • 기본적으로 모든 인바운드 트래픽은 차단되고, 모든 아웃바운드 트래픽은 허용됩니다.
  • 커스텀 보안 그룹 생성:
    1. AWS 콘솔 > EC2 > 보안 그룹 생성.
    2. 보안 그룹을 EC2 인스턴스에 연결.
    3. 인바운드 및 아웃바운드 규칙 추가(프로토콜, 포트 범위, 소스/목적지 설정).

예제 규칙:

유형프로토콜포트 범위소스

HTTP TCP 80 0.0.0.0/0
SSH TCP 22 192.168.1.0/24
MySQL/Aurora TCP 3306 보안 그룹 ID

3. 보안 그룹을 사용하는 경우

  • 개별 인스턴스 보안이 필요한 경우: 특정 인스턴스별로 세밀한 보안 규칙을 적용해야 할 때.
  • 스테이트풀 방식이 필요한 경우: 응답 트래픽을 자동으로 허용하는 동작이 필요한 경우.
  • 유연한 설정: 규칙이 동시에 평가되므로 규칙 설정이 단순하고 이해하기 쉽습니다.

네트워크 ACL과 보안 그룹 비교

특징네트워크 ACL보안 그룹

작동 수준 서브넷 레벨 인스턴스 레벨
상태 스테이트리스(Stateless) 스테이트풀(Stateful)
규칙 평가 번호 순서로 평가 모든 규칙이 동시에 평가
트래픽 방향 인바운드/아웃바운드 각각 설정 응답 트래픽은 자동 허용
유연성 서브넷 내 모든 인스턴스에 적용 특정 인스턴스별 세밀한 설정 가능

 

언제 무엇을 사용해야 할까?

  1. 네트워크 ACL을 사용하는 경우:
    • 여러 인스턴스가 포함된 서브넷에 대해 공통 보안 규칙을 적용하려는 경우.
    • 트래픽의 기본적인 차단/허용이 필요한 경우.
    • 규칙을 더 세밀하게(예: 요청/응답 따로) 관리하고 싶은 경우.
  2. 보안 그룹을 사용하는 경우:
    • 인스턴스별로 세부적인 보안을 설정하고 싶은 경우.
    • 응답 트래픽을 자동으로 처리하는 스테이트풀 동작이 필요한 경우.
    • 규칙을 직관적으로 관리하고 싶은 경우.
  3. 둘을 조합해서 사용하는 경우:
    • 서브넷 레벨의 기본 보안은 네트워크 ACL로 설정하고, 개별 인스턴스의 세부 보안은 보안 그룹으로 설정.
    • 예: 네트워크 ACL에서 서브넷 내 기본 트래픽을 차단하고, 보안 그룹에서 특정 트래픽만 허용.

+ Recent posts