본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

AWS Ambassador

AWS Transit Gateway용 VPC Flow Logs

2023.02.01

1. 서비스 소개

1.1 AWS VPC Flow Logs
● AWS VPC Flow logs는 VPC 네트워크에서 전송되고 수신되는 IP 트래픽에 대한 정보를 수집할 수 있는 기능
● 네트워크 연결 문제 해결 및 네트워크상 접근 규칙이 정상 작동하는지 확인하기 위해 Flow log 수집, 저장 및 분석 가능
● ENI 별로 Flow를 수집하며, 별도 응용 프로그램(e.g. CloudWatch Logs, QuickSight, Datadog)에서 분석 가능
● 특정 유형의 트래픽을 감지하여 알람을 만들거나 트래픽의 변화와 패턴을 파악하기 위한 통계를 만들 수도 있음
● Security Group 및 NACL 규칙에 의해 허용 또는 차단 트래픽 정보 분석
● Source, Destination IP 주소, Service Port, Protocol, 패킷 바이트, 모니터링 간격 시간, Action(ACCEPT or REJECT) 정보를 Log 에 포함

1.2 Transit Gateway 용 VPC Flow Logs
● Transit Gateway를 사용하여 VPC 간 연결 / On-Premise 연결하여 고객 네트워크 아키텍처 고도화됨
● 기존 VPC Flow logs의 경우, TGW 를 통과하는 트래픽의 경우 종단간(End-to-End) 흐름을 파악하기 어려움
● TGW 용 VPC Flow logs를 통해 TGW Attachment 간 트래픽 흐름을 파악 가능하며, TGW의 네트워크 트래픽에 대한 상세 분석/가시성 제공이 가능해짐
● Direct Connect 및 AWS VPN을 통해 연결된 On-Premise 네트워크로 통과하는 모든 트래픽에 대한 흐름 수준 통찰력 확보 가능
● Transit Gateway Attachment 별로 상세한 Flow-Level Metric 수집하여 각 네트워크 측정 항목에 대해 세분화된 가시성 제공
● 프로토콜, 애플리케이션 및 온프레미스 네트워크에서 AWS 리소스에 액세스하는 개별 최종 사용자의 트래픽 패턴 제공
● AWS Flow Logs 와 동일하게 TGW의 VPC Flow Logs는 S3 또는 CloudWatch Logs로 저장 가능
● TGW의 VPC Flow Logs는 기존 VPC Flow Logs와 달리 Deny / Allow 필터 사용 불가하며, 로그 저장 요금 별도 파악 필요

2. 가이드

2.1 Record 형식
● Transit Gateway 또는 개별 Transit Gateway Attachment에 대한 Flow Log를 생성
● 각 레코드는 5-튜플(소스 IP, 대상 IP, 전송 프로토콜, 소스 포트 및 대상 포트)을 특징으로 하는 네트워크 IP(인터넷 프로토콜) 트래픽 흐름을 캡처
● Transit Gateway는 모든 IP 트래픽을 모니터링하고 지정된 리소스의 모든 네트워크 흐름을 나타내는 Flow Log 레코드를 저장
● Flow Logs를 생성 시 기본 형식을 선택하거나 사용자 정의 형식을 선택하여 로그 생성 가능하며 아래 레코드를 포함

  • version : 필드가 도입된 버전
  • tgw-id : 트래픽이 기록된 Transit Gateway의 ID
  • tgw-attachment-id : 트래픽이 기록되는 Transit Gateway 연결의 ID
  • srcaddr : 소스 IP 주소
  • dstaddr : 목적지 IP 주소
  • srcport : 트래픽의 소스 포트
  • dstport : 트래픽의 목적지 포트
  • protocol : 트래픽의 IANA 프로토콜 번호
  • packet : 흐름 중에 전송된 패킷의 수
  • bytes : 흐름 중에 전송된 바이트 수
  • start : 집계 간격 내에서 흐름의 첫 번째 패킷이 수신된 타임스탬프
  • end : 집계 간격 내에서 흐름의 마지막 패킷이 수신된 타임스탬프
  • packet-lost-no-route : 경로가 없어 손실된 패킷
  • packet-lost-blackhole : 블랙홀로 인해 손실된 패킷
  • packet-lost-mtu-exceeded : MTU를 초과한 크기로 인해 손실된 패킷
  • packet-loss-ttl : TTL(Time to Live) 만료로 인해 손실된 패킷
  • tgw-src-vpc-account-id : 소스 트래픽에 대한 VPC의 AWS 계정 ID
  • tgw-dst-vpc-account-id : 목적지 트래픽에 대한 VPC의 AWS 계정 ID
  • tgw-src-vpc-id : 소스 VPC의 ID
  • tgw-dst-vpc-id : 목적지 VPC의 ID
  • tgw-src-subnet-id : 흐름에 대한 원본 Transit Gateway 연결 서브넷의 ID
  • tgw-dst-subnet-id : 흐름에 대한 대상 Transit Gateway 연결 서브넷의 ID
  • tgw-src-eni : 흐름에 대한 소스 Transit Gateway 첨부 ENI의 ID
  • tgw-dst-eni : 흐름에 대한 대상 Transit Gateway 첨부 ENI의 ID
  • tcp-flags : 다음 TCP 플래그에 대한 비트마스크 값: SYN(2), SYN-ACK(18),
    FIN(1), RST(4), ACK(16)
  • type : 트래픽의 종류 (IPV4 | IPv6 | EFA)
  • region : Transit Gateway에 대한 AWS 리전의 ID
  • tgw-src-az-id : 소스 가용 영역의 ID
  • tgw-dst-az-id : 대상 가용 영역의 ID
  • flow-direction : 트래픽이 캡처되는 Transit Gateway 연결에 대한 흐름 방향 (ingress | egress)
  • pkt-src-aws-service : 소스 IP 주소에 대한 AWS 서비스 이름
  • pkt-dst-aws-service : 대상 IP 주소에 대한 AWS 서비스 이름
  • resource-type : Flow Log 리소스 유형, Transit Gateway 또는 Transit Gateway 연결
  • account-id : 원본 전송 게이트웨이 소유자의 AWS 계정 ID

2.2 설정 방법
● AWS VPC Flow Logs를 생성할 때와 동일하게 Transit Gateway를 선택하여 생성함

● Transit Gateway를 선택하고, Flow Logs를 Create

● CloudWatch Log Group 및 Role 지정(Role은 VPC Flow Log와 동일)

● 로그 포맷 지정 (기본 형식 또는 사용자 정의 형식)

● 생성 확인(VPC Flow Log를 생성했을 때와 동일하나, Accept/Reject 필터 불가

● 로그 그룹 및 로그 확인 : 아래 예시는 핑테스트 결과이며, Protocol 이 1 임을 확인

● Protocol 넘버는 IANA에서 확인 가능 : https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml

3. 마무리

●기존 VPC Flow Log에서 분석이 용이하지 않던 온 프레미스 종단 간 로그를 TGW용 Flow Log 분석을 통해 문제 해결이 가능하다.
●로그 포맷을 기본 형식 이외에 사용자 지정 형식을 이용하여 설정할 경우, Flag 정보 등을 활용하여 상세 분석이 가능하다.
●CloudWatch Log Insight, QuickSight 또는 외부 솔루션(e.g. Datadog, Dynatrace)을 연동하여 대시보드 및 알람 구성 시 운영에 효율적일 것으로 보인다.

4. 참고

● AWS DOC : https://docs.aws.amazon.com/vpc/latest/tgw/tgw-flow-logs.html
● AWS Blog : https://aws.amazon.com/ko/blogs/networking-and-content-delivery/introducing-vpc-flow-logs-for-aws-transit-gateway/
● Github : https://github.com/non-97/amazon-vpc-flow-logs-supports-transit-gateway

챗봇과 대화를 할 수 있어요