使用 VPC 流量日誌來記錄 IP 流量 - Amazon Virtual Private Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 VPC 流量日誌來記錄 IP 流量

VPC 流量日誌是一項可讓您擷取傳入及傳出您 VPC 中網路介面之 IP 流量相關資訊的功能。流程日誌資料可以發佈到下列位置:Amazon CloudWatch 日誌、Amazon S3 或亞馬遜資料 Firehose。建立流程日誌之後,您可以在您設定的日誌群組、儲存貯體或交付串流中擷取和檢視流程日誌記錄。

流量日誌可協助您處理多項任務,例如:

  • 診斷過於嚴苛的安全群組規則

  • 監控進入執行個體的流量

  • 判斷網路介面往來流量的方向

流量日誌資料是在網路流量路徑之外收集,因此不會影響網路輸送量或延遲。您可以建立或刪除流量日誌,而不會影響網路效能。

流量日誌基礎知識

您可以建立 VPC、子網或網路介面的流量日誌。如果建立子網或 VPC 的流量日誌,則會監控該子網或 VPC 中的每個網路介面。

監控之網路介面的流量日誌將記錄為流量日誌記錄,即由描述流量之欄位組成的日誌事件。如需更多詳細資訊,請參閱 流量日誌記錄

若要建立流量日誌,您要指定:

  • 要建立流量日誌的資源

  • 要擷取的流量類型 (接受的流量、拒絕的流量,或全部流量)

  • 流量日誌資料的發佈目標

在下列範例中,您將為私有子網中的其中一個 EC2 執行個體建立流量日誌,以擷取網路介面的接受流量,並將流量日誌記錄發佈至 Amazon S3 儲存貯體。


                執行個體的流量日誌

在以下範例中,流程記錄會擷取子網路的所有流量,並將流程日誌記錄發佈到 Amazon CloudWatch Logs。流量日誌擷取子網中所有網路介面的流量。


                子網的流量日誌

在您建立流量日誌之後,其可能需要數分鐘的時間,才會開始收集資料並將資料發佈至選擇的目的地。流量日誌不會擷取您網路介面的即時日誌串流。如需詳細資訊,請參閱 建立流量日誌

如果您在為子網路或 VPC 建立流程日誌後將執行個體啟動到子網路,我們會在網路介面有網路流量後立即為新網路界面建立 CloudWatch 日誌串流 (針對日誌) 或日誌檔物件 (適用於 Amazon S3)。

您可以為其他 AWS 服務建立的網路介面建立流量日誌,例如:

  • Elastic Load Balancing

  • Amazon RDS

  • Amazon ElastiCache

  • Amazon Redshift

  • Amazon WorkSpaces

  • NAT 閘道

  • 傳輸閘道

無論網路介面的類型為何,您都必須使用 Amazon EC2 主控台或 Amazon EC2 API 建立網路介面的流量日誌。

您可以將標籤套用至流量日誌。每個標籤皆包含由您定義的一個索引鍵與一個選用值。標籤可協助您整理流量日誌,例如依據用途或擁有者整理日誌。

如果您不再需要流量日誌,即可將其刪除。刪除流程日誌會停用資源的流程日誌服務,因此將不會再建立和發佈新的流程日誌記錄。刪除流程日誌並不會刪除任何現有的流程日誌資料。刪除流程日誌之後,您可以在完成操作後直接從目的地刪除流程日誌資料。如需詳細資訊,請參閱 刪除流量日誌

流量日誌記錄

流量日誌記錄代表您 VPC 中的網路流。根據預設,每筆記錄會擷取發生在彙總時間間隔 (也稱為擷取時段) 內的網際網路通訊協定 (IP) 流量 (特徵為每個網路介面一個 5 元組)。

每筆記錄都是包含欄位的字串,其中欄位會由空格分隔。記錄包含 IP 流程不同元件的值,例如來源、目標和通訊協定。

建立流量日誌時,您可以使用流量日誌記錄的預設格式,或指定自訂格式。

彙總時間間隔

彙總時間間隔是指擷取特定流程並彙總至流量日誌記錄的一段期間。根據預設,最大彙總時間間隔為 10 分鐘。建立流量日誌時,您可以選擇指定最大彙總時間間隔為 1 分鐘。最大彙總時間間隔 1 分鐘的流量日誌所產生的流量日誌記錄量會高於最大彙總時間間隔 10 分鐘的流量日誌。

當網路介面連線至 Nitro 型執行個體時,無論指定的最大彙總時間間隔為何,彙總時間間隔一律為 1 分鐘或更短。

在彙總間隔內擷取資料後,處理資料並將其發佈到 CloudWatch 日誌或 Amazon S3 需要額外的時間。流程日誌服務通常在 5 分鐘內將 CloudWatch 日誌交付到日誌,並在大約 10 分鐘內將日誌交付到 Amazon S3。不過,日誌傳遞是最大努力的基礎,而您的日誌可能會延遲超過一般傳遞時間。

預設格式

使用預設格式時,流量日誌記錄會依照可用欄位表格中顯示的順序,包括版本 2 欄位。您無法自訂或變更預設格式。若要擷取其他欄位或不同的欄位子集,請改為指定自訂格式。

自訂格式

使用自訂格式時,您可以指定流量日誌記錄中包含哪些欄位以及順序。這樣可讓您建立專門針對需求的流量日誌,省略不相關的欄位。使用自訂格式可以減少個別處理程序從已發佈的流量日誌擷取特定資訊的需求。您可指定任何數量的可用流量日誌欄位,但至少必須指定一個。

可用的欄位

下表描述流量日誌記錄的所有可用欄位。版本欄表示導入此欄位的 VPC 流量日誌版本。預設格式包括所有版本 2 欄位,其顯示順序與表格中的順序相同。

將流量日誌資料發佈到 Amazon S3 時,欄位的資料類型取決於流量日誌格式。如果格式為純文字,則所有欄位均為 STRING 類型。如果格式為 Parquet,請參閱欄位資料類型的資料表。

如果欄位不適用或無法計算特定記錄,則記錄會針對該項目顯示一個 '-' 符號。非直接來自封包標頭的中繼資料欄位是最佳近似值,而且它們的值可能會遺失或不正確。

欄位 描述 版本

version

VPC 流量日誌版本。如果您使用預設格式,則版本為 2。如果您使用自訂格式,則版本為指定欄位中的最高版本。例如,如果您只指定版本 2 中的欄位,則版本為 2。如果您指定的欄位混合了版本 2、3 和 4 的欄位,則版本為 4。

Parquet 資料類型:INT_32

2

account-id

記錄流量之來源網路介面之擁有者的 AWS 帳戶 ID。如果網路介面是由 AWS 服務建立的,例如在建立 VPC 端點或 Network Load Balancer 時,可能會顯示此欄位unknown的記錄。

Parquet 資料類型:STRING

2

interface-id

要記錄流量的網路介面 ID。

Parquet 資料類型:STRING

2

srcaddr

網路介面上傳入流量的來源地址,或傳出流量網路介面的 IPv4 或 IPv6 地址。網路介面的 IPv4 地址永遠都是其私有 IPv4 地址。另請參閱 pkt-srcaddr。

Parquet 資料類型:STRING

2

dstaddr

網路介面上傳出流量的目標地址,或傳入流量網路介面的 IPv4 或 IPv6 地址。網路介面的 IPv4 地址永遠都是其私有 IPv4 地址。另請參閱 pkt-dstaddr。

Parquet 資料類型:STRING

2

srcport

流量的來源連接埠。

Parquet 資料類型:INT_32

2

dstport

流量的目標連接埠。

Parquet 資料類型:INT_32

2

protocol

流量的 IANA 通訊協定號碼。如需詳細資訊,請參閱指派的網際網路通訊協定號碼

Parquet 資料類型:INT_32

2

packets

在流量期間傳輸的封包數。

Parquet 資料類型:INT_64

2

bytes

在流量期間傳輸的位元組數。

Parquet 資料類型:INT_64

2

start

彙總時間間隔內接收到第一個流量封包的時間 (以 Unix 秒為單位)。這個時間最長可能是在網路介面上傳送或接收封包之後 60 秒。

Parquet 資料類型:INT_64

2

end

彙總時間間隔內接收到最後一個流量封包的時間 (以 Unix 秒為單位)。這個時間最長可能是在網路介面上傳送或接收封包之後 60 秒。

Parquet 資料類型:INT_64

2

action

與流量相關聯的動作:

  • ACCEPT – 已接受流量。

  • REJECT – 已拒絕流量。例如,安全群組或網路 ACL 不允許流量,或封包在連線關閉後到達。

Parquet 資料類型:STRING

2

log-status

流量日誌的記錄狀態:

  • OK – 資料正常記錄至選擇的目的地。

  • NODATA – 在彙總時間間隔內沒有任何流入或流出網路介面的網路流量。

  • SKIPDATA – 在彙總時間間隔內曾跳過一部分流量日誌記錄。這可能是因為內部容量的條件約束,或是內部錯誤。

Parquet 資料類型:STRING

2

vpc-id

包含要記錄流量之網路介面的 VPC ID。

Parquet 資料類型:STRING

3

subnet-id

包含要記錄流量之網路介面的子網 ID。

Parquet 資料類型:STRING

3

instance-id

如果您擁有執行個體,則為與要記錄流量之網路介面相關聯的執行個體 ID。傳回請求者管理網路介面的 '-' 符號,例如 NAT 閘道的網路介面。

Parquet 資料類型:STRING

3

tcp-flags

下列 TCP 標記的位元遮罩值:

  • FIN – 1

  • SYN – 2

  • RST – 4

  • SYN-ACK – 18

如果沒有記錄支援的旗標,TCP 旗標值則為 0。例如,由於 tcp-flags 不支援記錄 ACK 或 PSH 旗標,具有這些不支援旗標的流量紀錄會導致 tcp-flags 值 0。但是,如果不支援的旗標附帶支援的旗標,我們將報告支援旗標的值。例如,如果 ACK 是 SYN-ACK 的一部分,則會報告 18。如果有 SYN+ECE 等紀錄,由於 SYN 是支援的旗標,而 ECE 不是,TCP 旗標值是 2。如果由於某種原因旗標組合無效且無法計算值,則值為 -。如果沒有傳送旗標,則 TCP 旗標值為 0。

彙總時間間隔內的 TCP 標記可用 OR 運算彙總。針對短暫連線,標記可能和流量日誌記錄設在同一行,例如,SYN-ACK 和 FIN 為 19,而 SYN 和 FIN 為 3。如需範例,請參閱TCP 標記序列

如需有關 TCP 標記的一般資訊 (如 FIN、SYN 和 ACK 等標記的含義),請參閱 Wikipedia 上的 TCP segment structure (TCP 區段結構)。

Parquet 資料類型:INT_32

3

type

流量類型。可能的值為:IPv4 | IPv6 | EFA。如需詳細資訊,請參閱 Elastic Fabric Adapter

Parquet 資料類型:STRING

3

pkt-srcaddr

流量的封包層級 (原始) 來源 IP 地址。使用此欄位搭配 srcaddr 欄位來分辨流量流經之中繼 layer 的 IP 地址,以及流量的原始來源 IP 地址。例如,當流量流經 NAT 閘道的網路介面時,或 Amazon EKS 的 Pod IP 地址和 Pod 執行 (用於 VPC 內部通訊) 所在執行個體節點的網路介面 IP 地址不同時。

Parquet 資料類型:STRING

3

pkt-dstaddr

流量的封包層級 (原始) 目標 IP 地址。使用此欄位搭配 dstaddr 欄位來分辨流量流經之中繼 layer 的 IP 地址,以及流量的最終目標 IP 地址。例如,當流量流經 NAT 閘道的網路介面時,或 Amazon EKS 的 Pod IP 地址和 Pod 執行 (用於 VPC 內部通訊) 所在執行個體節點的網路介面 IP 地址不同時。

Parquet 資料類型:STRING

3

region

包含記錄流量之網路介面的區域。

Parquet 資料類型:STRING

4

az-id

可用區域的 ID,其中包含記錄流量的網路介面。如果流量來自子位置,記錄會顯示此欄位的 '-' 符號。

Parquet 資料類型:STRING

4

sublocation-type

在 sublocation-id 欄位中傳回的子位置類型。可能的值為:波長 | outpost | 本機區域。如果流量不是來自子位置,則記錄會在此欄位顯示 '-' 符號。

Parquet 資料類型:STRING

4

sublocation-id

包含要記錄流量之網路介面的子位置 ID。如果流量不是來自子位置,則記錄會在此欄位顯示 '-' 符號。

Parquet 資料類型:STRING

4

pkt-src-aws-service

如果來源 IP 位址適用於 AWS 服務,則pkt-srcaddr欄位的 IP 位址範圍子集名稱。可能的值為: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。

Parquet 資料類型:STRING

5

pkt-dst-aws-service

pkt-dstaddr欄位之 IP 位址範圍子集的名稱 (如果目的地 IP 位址適用於 AWS 服務)。如需可能值的清單,請參閱 pkt-src-aws-service 欄位。

Parquet 資料類型:STRING

5

flow-direction

關於擷取流量的介面的流程方向。可能的值為:ingress | egress。

Parquet 資料類型:STRING

5

traffic-path

出口流量前往目的地的路徑。若要判斷流量是否為出口流量,請查看 flow-direction 欄位。可能的值如下。如果沒有任何值套用,則欄位會設定為 -。

  • 1 — 透過相同 VPC 中的另一個資源,包括在 VPC 中建立網路介面的資源

  • 2 – 透過網際網路閘道或閘道 VPC 端點

  • 3 – 透過虛擬私有閘道

  • 4 – 透過區域內 VPC 對等連線

  • 5 – 透過區域間 VPC 對等連線

  • 6 – 透過本機閘道

  • 7 – 透過閘道 VPC 端點 (僅限 Nitro 型執行個體)

  • 8 – 透過網際網路閘道 (僅限 Nitro 執行個體)

Parquet 資料類型:INT_32

5

流量日誌限制

若要使用流量日誌,您必須注意下列限制:

  • 您無法為已和您 VPC 互連之 VPC 啟用流量日誌,除非對等 VPC 位於您的帳戶中。

  • 建立流量日誌之後,您即無法變更其組態或流量日誌記錄格式。例如,您無法建立不同 IAM 角色與流量日誌的關聯,或新增或移除流量日誌記錄的欄位。但是您可以刪除流量日誌,並使用需要的組態建立新的流量日誌。

  • 您的網路介面如有多個 IPv4 地址,且流量會傳送到輔助私有 IPv4 地址,則流量日誌會在 dstaddr 欄位中顯示主要私有 IPv4 地址。若要擷取原始目標 IP 地址,請建立具有 pkt-dstaddr 欄位的流量日誌。

  • 如果流量要傳送到網路介面,但目標不是任一網路介面的 IP 地址,則流量日誌會在 dstaddr 欄位中顯示主要私有 IPv4 地址。若要擷取原始目標 IP 地址,請建立具有 pkt-dstaddr 欄位的流量日誌。

  • 如果流量來自網路介面,但來源不是任一網路介面的 IP 地址,則流量日誌會在 srcaddr 欄位中顯示主要私有 IPv4 地址。若要擷取原始來源 IP 地址,請建立具有 pkt-srcaddr 欄位的流量日誌。

  • 若流量會傳送到或來自網路介面,則流量日誌的 srcaddrdstaddr 欄位一律會顯示主要私有 IPv4 地址,無論封包來源或目標為何。若要擷取封包來源或目標,請建立具有 pkt-srcaddrpkt-dstaddr 欄位的流量日誌。

  • 當您的網路介面連線至 Nitro 型執行個體時,無論指定的最大彙總時間間隔為何,彙總時間間隔一律為 1 分鐘或更短。

流量日誌不會擷取所有 IP 流量。以下流量類型的日誌不會記錄:

  • 由執行個體在與 Amazon DNS 伺服器聯絡時產生的流量。若您使用您自己的 DNS 伺服器,則會記錄所有流向該 DNS 伺服器的流量。

  • 由 Windows 執行個體針對 Amazon Windows 授權啟用所產生的流量。

  • 針對執行個體中繼資料,流入及流出 169.254.169.254 的流量。

  • 針對 Amazon Time Sync Service,流入及流出 169.254.169.123 的流量。

  • DHCP 流量。

  • 鏡像流量。

  • 流入預設 VPC 路由器預留 IP 地址的流量。

  • 端點網路介面和 Network Load Balancer 網路介面之間的流量。

定價

當您發佈流程日誌時,會套用付費日誌的資料擷取和存檔費用。如需有關發佈付費日誌時定價的詳細資訊,請開啟 Amazon CloudWatch 定價,選取日誌並尋找付費日誌。

若要追蹤發佈流程日誌的費用,您可以將成本分配標籤套用至目的地資源。之後,您的 AWS 成本分配報告會納入這些標籤彙總的使用量和成本。您可以套用代表業務類別 (例如成本中心、應用程式名稱或擁有者) 的標籤,來整理多個服務中的成本。如需詳細資訊,請參閱下列內容: