먼저 둘을 각각 설명함에 앞서 간단하게 설명해 보겠습니다
네트워크 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 생성:
- AWS 콘솔 > VPC > 네트워크 ACL 생성.
- 서브넷에 네트워크 ACL 연결.
- 인바운드 및 아웃바운드 규칙 추가(규칙 번호, 소스/목적지, 프로토콜, 포트 범위, 동작 설정).
예제 규칙:
규칙 번호유형프로토콜소스동작
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에는 기본 보안 그룹이 생성됩니다.
- 기본적으로 모든 인바운드 트래픽은 차단되고, 모든 아웃바운드 트래픽은 허용됩니다.
- 커스텀 보안 그룹 생성:
- AWS 콘솔 > EC2 > 보안 그룹 생성.
- 보안 그룹을 EC2 인스턴스에 연결.
- 인바운드 및 아웃바운드 규칙 추가(프로토콜, 포트 범위, 소스/목적지 설정).
예제 규칙:
유형프로토콜포트 범위소스
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) |
규칙 평가 | 번호 순서로 평가 | 모든 규칙이 동시에 평가 |
트래픽 방향 | 인바운드/아웃바운드 각각 설정 | 응답 트래픽은 자동 허용 |
유연성 | 서브넷 내 모든 인스턴스에 적용 | 특정 인스턴스별 세밀한 설정 가능 |
언제 무엇을 사용해야 할까?
- 네트워크 ACL을 사용하는 경우:
- 여러 인스턴스가 포함된 서브넷에 대해 공통 보안 규칙을 적용하려는 경우.
- 트래픽의 기본적인 차단/허용이 필요한 경우.
- 규칙을 더 세밀하게(예: 요청/응답 따로) 관리하고 싶은 경우.
- 보안 그룹을 사용하는 경우:
- 인스턴스별로 세부적인 보안을 설정하고 싶은 경우.
- 응답 트래픽을 자동으로 처리하는 스테이트풀 동작이 필요한 경우.
- 규칙을 직관적으로 관리하고 싶은 경우.
- 둘을 조합해서 사용하는 경우:
- 서브넷 레벨의 기본 보안은 네트워크 ACL로 설정하고, 개별 인스턴스의 세부 보안은 보안 그룹으로 설정.
- 예: 네트워크 ACL에서 서브넷 내 기본 트래픽을 차단하고, 보안 그룹에서 특정 트래픽만 허용.
'AWS' 카테고리의 다른 글
AWS VPC 가용영역(AZ) 변경하기 (0) | 2025.01.19 |
---|---|
왜 하나의 서버에 하나의 IP만 쓰지 않을까? (0) | 2025.01.16 |
NAT(Network Address Translation) 알아보기 (2) | 2025.01.15 |
Routing Table & Internet Gateway(라우팅테이블 & 인터넷게이트웨이) (0) | 2025.01.14 |
AWS에서 네트워크 트래픽과 접근을 제어하는 도구 (0) | 2025.01.13 |