VPC Flow Logs는 NACL이나 보안 그룹과 같은 네트워크 보안 정책이 실제로 의도대로 동작하는지 검증하는 트래픽 관찰 도구입니다. 네트워크 인터페이스를 통과하는 트래픽의 메타데이터(소스/대상 IP, 포트, 프로토콜, 패킷 수, 바이트 수, 허용/거부 여부)를 기록하여, 트래픽 패턴 분석과 보안 규칙 검증에 활용할 수 있습니다. 이 글에서는 VPC Flow Logs의 기본 개념, 레코드 형식, 그리고 Athena를 이용한 대규모 로그 분석 방법을 다룹니다.
개념과 기록 범위
VPC Flow Logs는 네트워크 인터페이스를 통과하는 트래픽의 메타데이터를 기록하는 AWS 서비스다. 패킷의 내용(payload)은 포함하지 않지만, 트래픽 패턴 분석과 보안 규칙 검증에 매우 유용하다.
Flow Logs의 기록 대상은 세 수준에서 선택할 수 있다. VPC 수준(VPC 내 모든 ENI), 서브넷 수준(특정 서브넷의 모든 ENI), 또는 ENI 수준(특정 인스턴스)이다. 기록된 로그는 CloudWatch Logs, S3, 또는 Kinesis Data Firehose로 전송하여 분석할 수 있다.
Flow Log의 Action 필드는 ACCEPT 또는 REJECT 값을 가진다. 거부된 트래픽(REJECT)의 패턴을 분석하면, 비정상적인 포트 스캔 시도나 잘못된 보안 그룹/NACL 설정을 탐지할 수 있다.
Flow Log 레코드 형식
기본 Flow Log 레코드의 주요 필드는 다음과 같다.
<version> <account-id> <interface-id> <srcaddr> <dstaddr> <srcport> <dstport> <protocol> <packets> <bytes> <start> <end> <action> <log-status>
커스텀 형식을 사용하면 vpc-id, subnet-id, tcp-flags, type(IPv4/IPv6), pkt-srcaddr, pkt-dstaddr(NAT 이전 원본 주소), flow-direction 등 추가 필드를 포함할 수 있다. 특히 tcp-flags 필드는 SYN-only 스캔이나 비정상적 플래그 조합을 감지하는 데 유용하며, flow-direction은 인바운드와 아웃바운드 트래픽을 구분하여 보안 그룹과 NACL 중 어느 계층에서 트래픽이 거부되었는지 추적하는 데 도움이 된다.
Amazon Athena를 이용한 대규모 로그 분석
Flow Logs를 S3로 전송하면 Apache Parquet 형식으로 저장할 수 있어, Amazon Athena에서 SQL 쿼리로 대규모 로그를 효율적으로 분석할 수 있다. 예를 들어 특정 서브넷에서 거부된 트래픽의 소스 IP Top 10을 추출하는 쿼리를 통해, DDoS 공격 패턴이나 잘못된 NACL 설정을 빠르게 식별할 수 있다.
출처
- Amazon Web Services (2026) Logging IP traffic using VPC Flow Logs. Available at: https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html
- Amazon Web Services (2026) Flow log record examples. Available at: https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-records-examples.html