개요
저번 포스팅을 통해 VPC가 어떻게 네트워크를 구성하고 인터넷과 연결되는지 확인할 수 있었습니다. 인터넷과 연결된 순간 트래픽에 대한 제어와 통제 , 확인이 반드시 필요합니다.
이번 포스팅에서는 VPC의 트래픽을 통제하고 제어하는 서비스와 트래픽의 흐름을 관리할 수 있는 서비스에 대해 알아보겠습니다. 해당 기능을 제공하는 서비스들은 Security Group, Network ACL, VPC Flow Logs로 총 3가지입니다.
Network ACL : Route table 아래 자물쇠가 채워진 첫 번째 상자입니다. subnet을 오가는 트래픽을 제어하는 역할을 합니다.
Security Group: 두 번째 상자는 subnet 내부에 위치한 security group입니다. subnet 내 인스턴스의 트래픽을 제어할 수 있습니다. Subnet 1과 subnet2의 security group을 보면 모양이 다른 것을 확인할 수 있습니다. 다수의 인스턴스가 하나의 security group을 쓰거나 인스턴스 수만큼 security group을 쓸 수 있음을 의미합니다.
VPC Flow Logs: VPC 내에 있는 Resource들은 Elastic Network Interface(ENI)을 가집니다. 이를 VPC Flow Logs를 설정을 통해 확인 할 수 있습니다.
Security Group(보안 그룹)
보안 그룹은 인스턴스에 대한 인바운드(외부에서 인스턴스로) 및 아웃바운드(인스턴스에서 외부로) 트래픽을 제어하는 가상 방화벽 역할을 합니다. VPC에서 인스턴스를 시작할 때 최대 5개의 보안 그룹에 인스턴스를 할당할 수 있습니다.
Security Group은 인스턴스의 가상 방화벽 역할을 합니다. 여기서 말하는 인스턴스는 VPC내에 탑재될 수 있는 모든 가상 컴퓨터를 의미합니다.
security group을 보면 인스턴스 유형에 따라 포트 유형, 프로토콜, 포트 범위 등을 설정하여 인바운드, 아웃바운드 규칙을 정하여 인스턴스에 접속할 수 있는 트래픽 유형을 제어할 수 있습니다.
EC2 같은 경우 웹서비스를 제공하기 때문에 HTTP, HTTPS를 접속할 수 있도록 허용해놓고 EC2직접 접속(가상 컴퓨팅에) 하기 위해 SSH포트도 열어놓습니다. 아래는 예시입니다.
Security Group의 특징도 살펴보면
1. 인바운드 규칙과 아웃바운드 규칙으로 나뉨
2. 허용 규칙만 생성 가능
3. 기본적으로 모든 security group의 아웃바운드 규칙은 모든 아웃바운드 트래픽 허용
4. 하나의 인스턴스에는 최대 5개의 security group동시 적용 가능
5. 상태를 저장하여 한번 인바운드를 통과하는 트래픽은 아웃바운드 규칙 적용을 받지 않음 (stateful이라고 함)
6. 마찬가지로 상태를 저장하여 한번 아웃바운드를 통과하는 트래픽은 인바운드 규칙을 적용받지 않음
5번 6번 사항이 이해가 잘 가지 않을 수도 있습니다. 쉽게 말해 인바운드 규칙으로 https/http/ssh의 허용해놓으면 외부에서 들어오는 트래픽은 인바운드의 규칙만 적용받기 때문에 아웃바운드의 규칙에 상관없이 왕래할 수 있습니다.
Network ACL(네트워크 액세스 제어)
네트워크 ACL(액세스 제어 목록)은 1개 이상의 서브넷 내부와 외부의 트래픽을 제어하기 위한 방화벽 역할을 하는 VPC를 위한 선택적 보안 계층입니다.
위의 설명처럼 NETwork ACL은 Subnet의 Access List(접근 제어 목록)을 책임집니다. subnet을 오고 가능 모든 트래픽을 제어하는 역할을 합니다. Network ACL은 Subnet단위로 적용되기 때문에 subnet내의 모든 트래픽은 Network ACL의 규칙 적용을 받습니다.
즉, Security group/Network ACL은 같이 사용하면 좋습니다. Security group을 사용해 각 인스턴스에 허용되어야 할 프로토콜과 포트를 각각 지정함 그리고 Network ACL을 사용해 모든 트래픽을 허용하되, 차단할 필요가 있는 IP 차단하면 좋다.
VPC Flow Logs
VPC, 서브넷 또는 네트워크 인터페이스에 대한 흐름 로그를 생성할 수 있습니다. 서브넷이나 VPC에 대한 흐름 로그를 생성할 경우, VPC 또는 서브넷의 각 네트워크 인터페이스가 모니터링됩니다.
VPC 내 Resource들은 Elastic Network Interface(ENI)를 갖습니다. 그리고 이 ENI는 VPC Flow Logs 통해 확인할 수 있습니다.
댓글