[AWS] 보안그룹과 네트워크 ACL

1. 보안그룹과 네트워크 ACL

AWS는 최소한의 트래픽 제어를 위해 보안그룹과 네트워크 ACL 이라는 가상 방화벽을 사용한다.

1) 공통점

두 보안정책 모두 패킷의 출발지 혹은 목적지의 IP, 포트번호, 그리고 프로토콜을 통해 인바운드와 아웃바운드 패킷의 허용 여부를 판단한다.

2) 차이점

보안 대상

보안그룹은 EC2나 ALB와 같은 특정 인스턴스에 대한 접근 제어 정책이다.

네트워크 ACL은 VPC에서 생성한 서브넷 네트워크에 대한 접근 제어 정책이다.

Stateful vs Stateless

보안그룹은 Stateful 동작이다. Stateful 이란 이전 상태의 정보를 기억하고 있다가 다음 단계에서 그 상태 정보를 활용하는 것이다.

인스턴스의 보안그룹 아웃바운드 규칙은 모든 트래픽을 허용하지만, 인바운드 규칙은 모든 트래픽을 거부한다고 하자. 인스턴스가 외부 웹서버에 HTTP 정보를 요청한다면 보안 그룹은 해당 트래픽의 목적지 IP, 포트번호, 프로토콜을 기억한다. 웹서버가 이 트래픽에 응답하는 HTTP 패킷을 보내면 기억된 정보를 활용해 아웃바운드 규칙을 무시하고 패킷을 허용한다.

네트워크 ACL의 보안그룹은 Stateless 동작이다. 설명한 Stateful의 딱 반대이다. 이전 상태의 정보를 기억하지 않는다. 들어오는 패킷은 인바운드 규칙이, 나가는 패킷은 아웃바운드 규칙이 무조건 적용된다.

허용/거부 정책

보안그룹은 허용 정책만 존재한다. 그 대상이 아닌 것은 모두 거부된다.

네트워크 ACL은 허용과 거부 정책이 모두 존재한다. 각 규칙에는 번호가 있으며, 번호가 낮을수록 우선순위가 높아 먼저 적용된다. 매칭되는 규칙이 있다면 하위 정책을 더 이상 확인하지 않는다. 가장 마지막 정책은 모든 트래픽을 거부한다.

2. VPC Flow Log

VPC 플로우 로그는 ENI에서 송수신되는 트래픽 로그 데이터를 수집하여 CloudWatch 또는 S3 로 전송한다. 단, 플로우 로그 레코드를 게시하는데 1분 또는 10분의 시간이 걸린다.

플로그 로그 레코드에서 확인할 수 있는 정보는 다음과 같다.

레코드 설명
ver (Version) VPC 플로우 로그 버전, 기본은 version 2
acco-id (Account-ID) 소스 네트워크 인터페이스 소유자의 AWS 계정 ID
inf-id (Interface-ID) 기록하는 네트워크 인터페이스의 ID
srcaddr (Source Address) 출발지 IP
dstaddr (Destination Address) 목적지 IP
srcport (Source Port) 출발지 포트 번호
dstport (Destination Port) 목적지 포트 번호
prot (Protocol) 대상 프로토콜 정보
pkts (Packets) 전송된 패킷 수
bytes 전송된 바이트 크기
start 첫번째 패킷이 집계된 시간
end 마지막 패킷이 집계된 시간
act (Action) 패킷에 대한 허용/거부
lot-stat (Log Status) 플로우 로그 상태 (OK, NODATA, SKIPDATA)

카테고리:

업데이트:

댓글남기기