네트워크 강화, 애플리케이션 보완, 사용자 ID 인증 및 권한 부여, 분산 서비스 거부(DDoS) 방지, 데이터 무결성, 암호화 등
처리하는 다양한 도구가 있음 (게이트웨이는 경계에만 적용!)
(1) 서브넷
보안 또는 운영 요구 사항에 따라 리소스를 그룹화할 수 있는 VPC 내의 한 섹션
종류
· 퍼블릭 서브넷 : 누구나 액세스할 수 있어야 하는 리소스가 포함됨 (ex) 온라인 상점의 웹사이트)
· 프라이빗 서브넷 : 프라이빗 네트워크를 통해서만 액세스할 수 있는 리소스가 포함됨 (ex) 고객의 개인정보 및 주문 내역이 포함된 데이터베이스)
ex) 퍼블릭 서브넷 내의 AWS EC2 인스턴스가 프라이빗 서브넷 내의 데이터베이스와 통신하는 애플리케이션


퍼블릭 서브넷과 프라이빗 서브넷
(2) VPC의 네트워크 트래픽
패킷은 인터넷 게이트웨이를 통해 VPC로 들어감 → 서브넷에 출입 유무? 권한 필요
서브넷 경계를 지나는 모든 패킷은 네트워크 ACL에서 검사! (출입 권한을 체크함)
(3) 네트워크 액세스 제어 목록 (ACL, Access Control List)
네트워크 ACL : 서브넷 수준에서 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 (인바운드 제어와 아웃바운드 제어 별도, 둘 다 각각 검사)
각 AWS 계정에는 기본 네트워크 ACL이 포함됨
→ VPC를 구성할 때 계정의 기본 네트워크 ACL을 사용하거나 사용자 지정 네트워크 ACL을 생성 가능
계정의 기본 네트워크 ACL은 기본적으로 모든 인바운드 및 아웃바운드 트래픽을 허용하지만 사용자가 자체 규칙을 추가하여 수정할 수 있음
사용자 지정 네트워크 ACL은 사용자가 허용할 트래픽을 지정하는 규칙을 추가할 때까지 모든 인바운드 및 아웃바운드 트래픽 거부
명시적 거부 규칙 : 패킷이 목록의 다른 모든 규칙과 일치하지 않으면 해당 패킷은 거부되도록 설정, 모든 네트워크 ACL에 있음
패킷의 특정 Amazon EC2 인스턴스에 도달할 수 있는지 평가 X (패킷만 평가함! 모든 네트워크 제어 문제 해결 X)
(4) 상태 비저장 패킷 필터링
아무것도 기억하지 않고 각 방향 (인바운드 및 아웃바운드)으로 서브넷 경계를 통과하는 패킷만 확인 (NACL에 해당)
네트워크 ACL은 규칙 목록에 따라 패킷 응답을 확인하여 허용 또는 거부 결정
(5) 보안 그룹
(특히 프론트앤드 인스턴스나 외부 트래픽을 수신해야 될 경우)
→ 사용자가 지정 규칙을 추가하여 허용 또는 거부할 트래픽을 구성 가능 (ex) HTTP로 등록 시 인바운드에서 HTTP는 허용)
→ 동일한 보안 그룹에 연결하거나 각 인스턴스마다 서로 다른 보안 그룹을 사용할 수 있음
(6) 상태 저장 패킷 필터링
→ 인바운드 보안 그룹 규칙에 관계없이 응답이 진행하도록 허용


서브넷 1에서 서브넷 2로 패킷이 이동하는 과정 (1) : 보안 그룹, NACL 거쳐 나옴


서브넷 1에서 서브넷 2로 패킷이 이동하는 과정 (2) : NACL, 보안 그룹 거쳐 인스턴스에 들어감

서브넷에서 패킷이 이동하는 모식도
우수한 네트워크 보안 : NACL과 보안 그룹 모두 사용!
이러한 과정이 복잡해 보여도 네트워크 오버헤드 발생하지 않음