AWS Network ACL
- 서브넷 기준 적용 (VPC에서 설정)
- 룰에 대한 허용/거부 규칙 지원 - 특정 IP에 대해 거부할 수 있다.
- 아웃바운드 요청에 대한 응답 규칙 정의 필요하다.
- 등록된 규칙의 번호 순으로 트래픽을 허용/거부 한다.
- 각 규칙에 번호를 할당하고, 이 번호에 따라 순서대로 규칙을 평가한다.
- 더 낮은 번호의 규칙이 먼저 평가되고, 트래픽은 첫 번째 일치하는 규칙에 의해 허용되거나 거부된다.
- 설정된 서브넷에 있는 모든 인스턴스에 자동 적용된다.
- 1개의 VPC에 200개까지 생성 가능하다. (상향 가능)
- 1개의 Network ACL에 인바운드/아웃바운드 각각 20개씩 등록 가능하다. (상향 가능)
- 최대 40개까지 늘릴 수 있으나 추가규칙 처리를 위한 워크로드 증대로 인해 네트워크 성능에 영향을 줄 수 있다.
- 규칙을 수정하려면 연결된 서브넷과 연결을 끊어야 한다.
- 상태 비저장 (Stateless) - 인바운드와 아웃바운드 트래픽을 독립적으로 평가하기 때문에 양방향 트래픽 모두에 대해 명시적으로 규칙을 설정해야 한다.
AWS Security Group
- 인스턴스 기준 적용 (EC2에서 설정)
- 룰에 대한 허용 규칙만 지원한다. (거부 규칙 지원x)
- 특정 IP에 대한 거부를 할 수 없다.
- 기본적으로 모든 아웃바운드 요청은 허용하고 인바운드 요청은 거부한다.
- 등록된 모든 규칙을 평가하여 트래픽 허용한다.
- 인스턴스에 할당해주어야 적용된다.
- 1개의 VPC에 2500개까지 생성 가능하다. (상향 가능)
- 1개의 Security Group에 인바운드/아웃바운드 각각 60개씩 등록 가능하다. (상향 가능)
- 1개의 인스턴스 Network Interface에 5개의 Security Group 설정이 가능하다. (최대 16개까지 상향 가능)
- EC2 인스턴스의 Virtual Firewall 역할을 한다.
- 언제든지 규칙을 수정할 수 있다.
- 상태 저장 (Stateful) - 인바운드 트래픽이 규칙을 통과하여 허용되면, 해당 세션을 통한 아웃바운드 트래픽도 허용된다.
비교
위 항목들을 테이블로 정리해보았다.
기능 | AWS Network ACL | AWS Security Group |
---|
적용 대상 | 서브넷 기준 (VPC 설정) | 인스턴스 기준 (EC2 설정) |
규칙 유형 | 허용/거부 | 허용만 가능 (거부 규칙 지원X) |
특정 IP에 대한 거부 가능 | 가능 | 불가능 |
아웃바운드 요청에 대한 응답 규칙 | 필요 | 기본적으로 모든 요청 허용, 인바운드 요청은 거부 |
규칙 처리 | 등록된 규칙의 번호 순으로 처리하여 첫번째로 일치하는 규칙에 의해 허용/거부 | 모든 규칙 평가 후 트래픽 허용 |
적용 | 설정된 서브넷에 있는 모든 인스턴스에 적용 | 인스턴스에 지정해야 적용 |
생성 가능한 최대 수량 | VPC당 200개 (상향 가능) | VPC당 2500개 (상향 가능) |
규칙의 최대 등록 가능 수 | 인바운드/아웃바운드 각각 20개씩 (최대 40개까지 상향 가능) | 인바운드/아웃바운드 각각 60개씩 (상향 가능) |
규칙 수정 | 연결된 서브넷과의 연결 해제 필요 | 언제든지 가능 |
상태 유지 | 비저장 (Stateless) - 인바운드와 아웃바운드 독립적 평가 | 저장 (Stateful) - 인바운드 허용 시, 관련 아웃바운드도 허용 |
참고
https://library.gabia.com/contents/8892/
https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-security-groups
https://medium.com/@cloud_tips/difference-between-security-groups-and-network-access-control-list-3332c5612efc