VPC Flow Logs là gì ?

VPC Flow Logs là một tính năng cho phép bạn thu thập thông tin về lưu lượng IP diễn ra giữa các giao diện mạng trong mạng VPC của bạn. Dữ liệu VPC Flow Logs có thể được xuất bằng cách sử dụng Amazon CloudWatch Logs, Amazon S3, hoặc Amazon Kinesis Data Firehose.

Đặc điểm của VPC Flow Logs

VPC Flow Logs có nhiều ứng dụng hữu ích:

  • Chẩn đoán các quy tắc của Security group rule
  • Giám sát lưu lượng truy cập đến các instance
  • Xác định hướng truy cập nhập xuất qua network interface

VPC Flow Logs hữu ích trong các trường hợp cụ thể ở trên. Ngoài ra, vì dữ liệu Flow Logs được thu thập bằng đường dẫn khác với đường dẫn của network traffic, nên không ảnh hưởng đến độ trễ hoặc hiệu suất mạng. 

Hướng dẫn cấu hình Flow Logs

Để sử dụng Flow Logs, bạn cần tiến hành một số bước cấu hình cụ thể. Hãy cùng xem xét từng bước trong quá trình cấu hình Flow Logs. Ở đây Sunny Cloud dùng ví dụ dữ liệu Flow Logs được gửi đến CloudWatch Logs.

1) Tạo log group trong CloudWatch Logs

Đầu tiên, tạo log group cho EC2 instance. Chọn instance đang chạy và chọn vào Networking.

Tạo log group cho EC2 instance
Tạo log group cho EC2 instance

Kéo xuống dưới, chọn Network interface ID. Sau khi chuyển đến trang Network interfaces, chọn vào “Create flow log” trong mục Actions và tạo flow log.

Tạo Flow log
Tạo Flow log

Trong Flow log settings, nhập tên (Name), điểm đến (Destination), vv. Sau khi hoàn tất, chọn vào nút “Create flow log” màu da cam ở góc dưới bên phải để hoàn thành.

Cấu hình flow log trong Flow log settings
Cấu hình flow log trong Flow log settings

Kiểm tra output flow log

Để kiểm tra output, chọn vào Log stream có trong Log group vừa tạo. Các action sẽ được hiển thị trong phần Log event.

Kiểm tra output
Kiểm tra output – Bảng Log streams
Kiểm tra output - Bảng Log events
Kiểm tra output – Bảng Log events

Dưới đây là các giá trị mặc định của định dạng xuất log .

[version, accountid, interfaceid, srcaddr, dstaddr, srcport, dstport, protocol, packets, bytes, start, end, action, logstatus]

fieldGiải thíchversion
versionVPC flow log version. Nếu để mặc định, version là 2. Nếu sử dụng định dạng tùy chỉnh, version sẽ là version cao nhất trong field đã chọn. Ví dụ, nếu chỉ chọn field version 2, thì version sẽ là 2. Nếu chọn các field có version 2, 3, 4, thì version sẽ là 4 (version cao nhất). Kiểu dữ liệu: INT_322
accountidChứa AWS account ID của source network interface của traffic. Trường hợp network interface được tạo bởi dịch vụ của AWS (như khi tạo VPC endpoint hoặc Network Load Balancer), trên bản ghi có thể hiển thị là “unknown” cho field này. Kiểu dữ liệu: STRING2
interfaceidChứa ID của Kiểu dữ liệu của traffic. Kiểu dữ liệu: STRING2
srcaddrĐịa chỉ nguồn của traffic nhận hoặc địa chỉ IPv4/IPv6 của network interface cho traffic gửi trên network interface. Địa chỉ IPv4 của network interface luôn là địa chỉ private IPv4. Hãy tham khảo mục “pkt-srcaddr”. Kiểu dữ liệu: STRING2
srcportPort của traffic nguồn. Kiểu dữ liệu: INT_322
dstportPort của traffic đíchKiểu dữ liệu: INT_322
protocolSố hiệu IANA protocol của traffic. Tham khảo “Số internet protocol được phân bổ” để biết thêm chi tiết. Kiểu dữ liệu: INT_322
packetsSố packet được truyền trong flow. Kiểu dữ liệu: INT_642
bytesSố byte được truyền trong flowKiểu dữ liệu: INT_642
startThời gian (UNIX giây) nhận được packet đầu tiên của flow. Có thể mất tối đa 60 giây sau khi packet được gửi hoặc nhận trên network interface. Kiểu dữ liệu: INT_642
endThời gian (UNIX giây) nhận được packet cuối cùng của flow. Có thể mất tối đa 60 giây sau khi packet được gửi hoặc nhận trên network interface. Kiểu dữ liệu: INT_642
actionAction liên quan tới traffic: ACCEPT – traffic đã được chấp nhận. REJECT – traffic đã bị từ chối. Ví dụ, traffic không được cho phép bởi security group hoặc ACL network, hoặc packet đến sau khi kết nối kết thúc. Kiểu dữ liệu: STRING2
log-statusTrạng thái ghi Log của Flow Log. OK — Dữ liệu được ghi chính xác vào điểm đến đã chọn. NODATA — Không có traffic nào đi qua network interface. SKIPDATA — Một số flow log record đã bị skip. Điều này có thể do giới hạn dung lượng hoặc lỗi nội bộ. Kiểu dữ liệu: STRING2
vpc-idID của VPC chứa network interface của traffic.
Kiểu dữ liệu: STRING
3
subnet-idID của Subnet chứa network interface của traffic.Kiểu dữ liệu: STRING3
instance-idID của instance liên kết với network interface của traffic. Trong trường hợp Requester-managed network interfaces (như NAT Gateway network interface), trả về là “-“. Kiểu dữ liệu: STRING3
tcp-flagsGiá trị bitmask của các flag TCP: FIN — 1SYN — 2RST — 4SYN-ACK — 18TCP. Trong trường hợp kết nối ngắn, các flag có thể được đặt trên cùng một dòng record flow log (ví dụ SYN-ACK và FIN là 19, SYN và FIN là 3, vv) . Vui lòng xem “TCP Flag Sequences “ để biết thêm thông tin chi tiết. Kiểu dữ liệu: INT_323
typeChứa kiểu traffic. Các giá trị cho phép là IPv4 | IPv6 | EFA. Vui lòng xem “Elastic Fabric Adapter” để biết thêm thông tin chi tiết. Kiểu dữ liệu: STRING3
pkt-srcaddrĐịa chỉ IP gốc packet level của traffic. Sử dụng field này cùng với field srcaddr để phân biệt địa chỉ IP lớp trung gian mà traffic đi qua và địa chỉ IP gốc của traffic. Ví dụ, trong trường hợp traffic đi qua network interface của NAT Gateway, hoặc địa chỉ IP của pod trong Amazon EKS khác với địa chỉ IP của network interface của node instance mà pod đang chạy (trường hợp giao tiếp trong VPC). Kiểu dữ liệu: STRING.3
pkt-dstaddrĐịa chỉ IP đích packet-level của traffic. Sử dụng field này cùng với field dstaddr để phân biệt địa chỉ IP lớp trung gian mà traffic đi qua và địa chỉ IP gốc cuối cùng của traffic. Ví dụ, trong trường hợp traffic đi qua network interface của NAT Gateway, hoặc địa chỉ IP của pod trong Amazon EKS khác với địa chỉ IP của network interface của node instance mà pod đang chạy (trường hợp giao tiếp trong VPC). Kiểu dữ liệu: STRING.3
regionTên region chứa network interface của traffic. Kiểu dữ liệu: STRING.4
az-idID của Availability Zone chứa network interface của traffic. Trong trường hợp traffic đến từ sublocation, trên bản ghi sẽ hiển thị dấu “-” trong field này. Kiểu dữ liệu: STRING.4
sublocation-typeLoại sublocation. Các giá trị có thể chỉ định là: wavelength | outpost | localzone. Trong trường hợp traffic không phải từ sublocation, trên bản ghi sẽ hiển thị dấu “-” trong field này.  Kiểu dữ liệu: STRING.4
sublocation-idID của sublocation chứa network interface của traffic. Trong trường hợp truy cập không phải từ sublocation, trên bản ghi sẽ hiển thị dấu “-” trong field này. Kiểu dữ liệu: STRING.4
pkt-src-aws-serviceTên của phạm vi địa chỉ IP dùng cho field pkt-srcaddr (trong trường hợp địa chỉ IP gốc là dịch vụ của AWS). Các giá trị có thể có là: AMAZON | AMAZON_APPFLOW | AMAZON_CONNECT | API_GATEWAY | CHIME_MEETINGS | CHIME_VOICECONNECTOR | CLOUD9 | CLOUDFRONT | CODEBUILD | DYNAMODB | EBS | EC2 | EC2_INSTANCE_CONNECT | GLOBALACCELERATOR | KINESIS_VIDEO_STREAMS | ROUTE53 | ROUTE53_HEALTHCHECKS | ROUTE53_HEALTHCHECKS_PUBLISHING | ROUTE53_RESOLVER | S3 | WORKSPACES_GATEWAYS. Kiểu dữ liệu: STRING.5
pkt-dst-aws-serviceTên của phạm vi địa chỉ IP dùng cho field pkt-dstaddr (trong trường hợp địa chỉ IP gốc là dịch vụ của AWS). Vui lòng tham khảo field pkt-src-aws-service để biết danh sách chi tiết. Kiểu dữ liệu: STRING.5
flow-directionHướng của traffic. Các giá trị có thể là vào hoặc ra: ingress | egress. Kiểu dữ liệu: STRING.5
traffic-pathĐường đi của traffic từ nguồn đến đích. Kiểm tra field flow-direction để xác định chiều của traffic. Các giá trị có thể chỉ định như sau:  1 – Thông qua component khác trong cùng một VPC; 2 – Thông qua Internet Gateway hoặc VPC Endpoint Gateway; 3 – Thông qua Virtual Private Gateway;  4 – Thông qua kết nối VPC Peering trong region; 5 – Thông qua kết nối VPC Peering giữa các region; 6 – Thông qua Local Gateway; 7 – Thông qua VPC Endpoint Gateway (chỉ dành cho các instances dựa trên Nitro) 8 – Qua Internet Gateway (chỉ dành cho các instances dựa trên Nitro). Nếu không có giá trị nào được áp dụng, field sẽ được cấu hình là “-“.Kiểu dữ liệu: INT_325
Bảng giá trị mặc định của định dạng xuất log

Tổng kết

Cuối cùng, thông qua bài viết này, bạn đã tìm hiểu về VPC Flow Logs và tại sao chúng là một phần quan trọng trong việc quản lý và bảo mật mạng VPC của bạn. Với khả năng chẩn đoán, giám sát, và xác định lưu lượng mạng, VPC Flow Logs giúp bạn nắm rõ hoạt động mạng và phát hiện sự cố một cách hiệu quả. Điều này giúp tăng cường bảo mật và hiệu suất của mạng VPC, đồng thời giúp bạn xác định và khắc phục các vấn đề nhanh chóng.