01. 보안 그룹과 네트워크 ACL
1.1 접근 제어 (Access Control)
1.1.1 접근 제어 개요
- 네트워크에서 인가된 대상만 접근을 허용하고, 인가되지 않는 대상은 접근을 거부하는 접근 제어 정책을 통해 보안을 강화할 수 있다.
- 일반적으로 IP 주소, 프로토콜, 포트 번호를 통해 서비스를 식별한다.
1.2 보안 그룹과 네트워크 ACL
1.2.1 보안 그룹과 네트워크 ACL 개요
- AWS의 네트워크 인프라 보호를 위한 트래픽 제어 정책
- 두 정책 모두 IP 주소와 프로토콜, 포트 번호를 통해 대상 허용 여부를 판단한다.
- 트래픽 방향성에 따라 인바운드 규칙과 아웃바운드 규칙으로 나누어진다.
1.2.2 보안 그룹과 네트워크 ACL 차이점
트래픽 제어 대상
- 보안 그룹
- 인스턴스 레벨의 접근 제어 수행
- ex) EC2, ALB 등
- 네트워크 ACL
- 서브넷 레벨의 접근 제어를 수행
- VPC 내부에 생성한 서브넷 네트워크에 대한 접근 제어 정책
Stateful vs Stateless
- 보안 그룹
- Stateful 접근 제어 동작
- 인바운드로 들어오는 트래픽이 허용된다면 그 상태를 기억하고 아웃바운드로 되돌아갈 때 규칙 상관 없이 허용된다.
- 네트워크 ACL
- Stateless 접근 제어 동작
- 인바운트 트래픽이 허용된다고 해도 아웃바운드로 되돌아갈 때 아웃바운드 규칙에 따라 허용 여부를 결정한다.
허용/거부 규칙
- 보안 그룹
- 허용 규칙만 존재
- 허용 대상이 아닌 것은 자동으로 거부된다.
- 네트워크 ACL
- 허용 규칙, 거부 규칙 둘 다 존재한다.
- 규칙을 순차적으로 확인하여 매칭되는 대상이 있으면 하위 규칙을 더는 확인하지 않는다.
- 마지막 규칙은 모든 트래픽에 대해 거부하는 규칙을 자동으로 가진다.