Today Keys : firewall, network, vpc, aws, 방화벽, managed, endpoint, 관리형, proxy, 네트워크, policy, rule, group
이번 포스팅은 AWS Network Firewall 의 두 번째 포스팅입니다.
첫 번째 포스팅에서는 AWS Network Firewall을 만들고, 기본 테스트를 해본 예제였고, 이번 포스팅은 Network Firewall에 대한 몇 가지 정리 내용입니다.
AWS 네트워크 방화벽(Network Firewall)
▪ AWS VPC를 위한 관리형 네트워크 방화벽, 침입감지 및 방지 서비스(IDS/IPS)
▪ 인터넷 게이트웨이, NAT 게이트웨이, VPC, Direct Connect을 통한 트래픽에 대한 보안 적용 가능
▪ 오픈 소스 IPS인 Suritaca 사용하기 때문에 Suritaca 호환 규칙을 지원
▪ 보호된 서브넷(방화벽 엔드포인트 서브넷)으로 들어오고 나가는 트래픽을 모니터링하고 제어하는 기능 제공
▪ IP 주소는 물론 도메인 정책 지원
- 특정 AWS 서비스 도메인만 사용하도록 설정 가능.
AWS 네트워크 방화벽 리소스
▪ 방화벽(Firewall)
- VPC 서브넷에 대한 트래픽 필터링
▪ 방화벽 정책(FirewallPolicy)
- 방화벽에서 인바운드/아웃바운드 트래픽 필터링에 사용할 정책을 정의
- 방화벽 정책 내에는 Stateless rule group / Stateless default action / Stateful rule group을 정의
▪ 규칙 그룹(RuleGroup)
- 실제 방화벽에서 적용될 규칙을 정의한 그룹
- Stateful(상태저장) 정책과 Stateless(상태 비저장) 정책이 존재
AWS Network Firewall 엔진
▪ Stateless 엔진
- 패킷의 상태 정보와 상관없이 현재 패킷의 정보로만 stateless하게 적용하는 규칙
- 정의된 Stateless rules에 대해서 순차적인 규칙 검사
▪ Stateful 엔진
- 패킷의 상태정보를 기억하여, 상태 정보를 기반으로 stateful하게 적용하는 규칙
- 정의된 Stateful rules에 대해서 전체 검사
▪ 네트워크 방화벽은 두 가지 엔진을 사용하여 패킷을 검사하고, 각 엔진에 설정된 방화벽 정책을 적용
▪ Stateless 엔진을 먼저 적용하고, Stateless 엔진에서 pass/drop이 아닌 Forward 설정이 해당하는 경우에만 Stateful 엔진 적용.
▪ Stateless 엔진의 경우 NACL과 유사하게 동작
▪ Stateful 엔진은 오프 소스 IPS인 Suricata와 호환되는 규칙을 사용
▪ Stateful 엔진은 기존 Security Group과 유사하게 동작하지만, Default 정책이 허용이라는 점은 다름
▪ 스테이트풀 엔진의 경우 심층 패킷 검사(deep packet inspection) 수행 시, 패킷의 헤더 이외에 페이로드(payload)까지 확인
▪ Stateless Engine의 Stateless 정책을 확인하고, 정책에 대한 Action이 forward인 경우 Stateful 엔진 수행
AWS Network Firewall 기본 구조
▪ 네트워크 방화벽은 실제 사용자 VPC에 존재하지는 않고, AWS가 관리하는 영역에 존재하며 네트워크 방화벽 사용 시에 해당 서비스에 접근이 가능한 방화벽 엔드포인트를 제공
- 생성되는 엔드포인트 유형은 'GatewayLoadBalancer'
▪ 방화벽 엔드포인트는 하나의 가용영역에 1개의 서브넷만 지정 가능
- 가용성을 위해서 다수의 가용영역에 지정하는 것을 권고
▪ 방화벽 엔드포인트가 포함된 서브넷 내에 존재하는 서비스에 대해서는 방화벽 서비스를 사용할 수 없기 때문에 방화벽 엔드포인트 전용 서브넷으로 할당해야 함.