收集 AWS 虛擬私有雲流量記錄
本文說明如何使用 Google Security Operations 轉送器收集 AWS VPC 流量記錄。
詳情請參閱「將資料擷取至 Google SecOps」。
擷取標籤會識別剖析器,該剖析器會將原始記錄資料正規化為具結構性的 UDM 格式。本文件中的資訊適用於具有 AWS_VPC_FLOW
攝入標籤的剖析器。
支援的 AWS 虛擬私有雲流量記錄格式
Google SecOps 支援以兩種主要文字格式擷取 AWS VPC 流程記錄:
JSON 格式:
AWS_VPC_FLOW
記錄類型會剖析 JSON 格式的記錄。採用這種格式時,每個記錄項目都會包含鍵及其對應的值,因此資料本身就具有說明性。CSV 格式:Google SecOps 也提供 AWS VPC 流程日誌的剖析器 (CSV 格式)。這個格式只會在標題列中列出一次欄位鍵,後續列只會包含以半形逗號分隔的值。
如要以 CSV 格式擷取 AWS VPC 流量記錄,請在設定轉送器時,將記錄類型指定為 AWS_VPC_FLOW_CSV
。如需設定說明,請參閱「設定 Google SecOps 轉送器和系統記錄,以便擷取 AWS VPC 流量記錄」。
由於 CSV 格式不會在每個記錄項目中加入欄位鍵,因此 AWS_VPC_FLOW_CSV
剖析器會依據預先定義的嚴格值順序。CSV 檔案必須遵守下列欄位順序,才能正確剖析:
Version,Account_id,Interface_id,Srcaddr,Dstaddr,Srcport,Dstport,Protocol,Packets,Bytes,Start,End,Action,Log_status,Vpc_id,Subnet_id,Instance_id,Tcp_flags,Type,Pkt_srcaddr,Pkt_dstaddr,Region,Az_id,Sublocation_type,Sublocation_id,Pkt_src_aws_service,Pkt_dst_aws_service,Flow_direction,Traffic_path,Ecs_cluster_arn,Ecs_cluster_name,Ecs_container_instance_arn,Ecs_container_instance_id,Ecs_container_id,Ecs_second_container_id,Ecs_service_name,Ecs_task_definition_arn,Ecs_task_arn,Ecs_task_id
以下是 CSV 記錄行的範例:
7,369096419186,eni-0520bb5efed19d33a,10.119.32.34,10.119.223.3,51256,16020,6,14,3881,1723542839,1723542871,ACCEPT,OK,vpc-0769a6844ce873a6a,subnet-0cf9b2cb32f49f258,i-088d6080f45f5744f,0,IPv4,10.119.32.34,10.119.223.3,ap-northeast-1,apne1-az4,-,-,-,-,ingress,,-,-,-,-,-,-,-,-,-,-
如果欄位沒有可用值,請傳遞空白值 (例如 , ,
),以維持 CSV 資料列中的正確位置順序。
事前準備
確認已建立 Amazon S3 bucket。詳情請參閱「建立第一個 S3 值區」。
確認已建立 Amazon CloudWatch 記錄群組。詳情請參閱「處理記錄群組和記錄串流」。
設定 AWS 虛擬私有雲流量
根據您要將記錄轉送至 Amazon S3 還是 Amazon CloudWatch,設定 AWS VPC 流量。
如要瞭解如何將記錄轉送至 Amazon S3 儲存空間,請參閱本文的「設定要轉送至 Amazon S3 的流程記錄」一節。
如要瞭解如何將記錄轉送至 Amazon CloudWatch,請參閱本文的「將流量記錄檔設定為轉送至 Amazon CloudWatch」一節。
設定流量記錄,將記錄檔轉送至 Amazon S3
建立及設定 Amazon S3 儲存空間後,即可為網路介面、子網路和 VPC 網路建立流量記錄。
為網路介面建立流量記錄
- 登入 Amazon EC2 控制台。
- 在導覽窗格中,選取「Network Interfaces」(網路介面)。
- 選取一或多個網路介面。
- 依序選取「動作」> 建立流量記錄」。
- 設定流量記錄設定。詳情請參閱本文的「設定流程記錄設定」一節。
為子網路建立流量記錄
- 登入 Amazon VPC 控制台。
- 在導覽窗格中,選取「子網路」。
- 選取一或多個子網路。
- 依序選取「動作」> 建立流量記錄」。
- 設定流量記錄設定。詳情請參閱本文的「設定流程記錄設定」一節。
為虛擬私有雲建立流量記錄
- 登入 Amazon VPC 控制台。
- 在導覽窗格中,選取「VPC」。
- 選取一或多個 VPC。
- 依序選取「動作」> 建立流量記錄」。
- 設定流量記錄設定。詳情請參閱本文的「設定流程記錄設定」一節。
設定流量記錄設定
在「篩選器」部分,指定要記錄的 IP 流量:
接受:只記錄接受的流量。
拒絕:只記錄遭拒的流量。
全部:記錄接受和拒絕的流量。
在「最大匯總間隔」部分,選取「1 分鐘」。
在「目的地」部分,選取「傳送至 Amazon S3 值區」。
在「S3 bucket ARN」(S3 bucket ARN) 區段中,指定 Amazon S3 bucket 的 ARN。
在「記錄記錄格式」部分,為流量記錄指定下列格式:
- 如要使用預設的流量記錄格式,請選取「AWS default format」(AWS 預設格式)。
- 如要建立自訂格式,請選取「自訂格式」。
使用自訂 AWS 記錄格式設定虛擬私有雲流量記錄,即可使用 MSS 真實 IP 功能。
在「記錄格式」清單中,選取所有屬性。
在「格式預覽」部分中,檢查自訂格式。
在「記錄檔格式」部分中,選取「文字 (預設)」。
在「Hive-compatible S3 prefix」(與 Hive 相容的 S3 前置字元) 區段中,取消勾選「Enable」(啟用) 核取方塊。
在「依時間劃分記錄」部分,選取「每 1 小時 (60 分鐘)」。
如要將標記新增至流程記錄,請選取「新增標記」,然後指定標記鍵和值。
選取「建立流程記錄」。詳情請參閱「將流量記錄發布至 Amazon S3」。
將流量記錄設定為 Amazon CloudWatch
您可以從虛擬私有雲、子網路或網路介面設定流量記錄。
在「篩選器」部分,指定要記錄的 IP 流量類型:
接受:只記錄接受的流量。
拒絕:只記錄遭拒的流量。
全部:記錄接受和拒絕的流量。
在「最大匯總間隔」部分,選取「1 分鐘」。
在「目的地」部分,選取「傳送至 CloudWatch Logs」。
在「Destination log group」(目的地記錄檔群組) 專區中,提供您建立的目的地記錄檔群組名稱。
在「IAM role」(IAM 角色) 清單中,選取角色名稱。所選角色名稱有權將記錄發布至 CloudWatch 記錄。
IAM 角色必須具備下列權限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" } ] }
在「記錄檔記錄格式」部分,選取流量記錄的「自訂格式」。
如要將標記新增至流程記錄,請選取「新增標記」,然後指定標記鍵和值。
選取「建立流程記錄」。詳情請參閱「將流量記錄發布至 Amazon S3」。
您可以設定 Amazon S3 將事件通知傳送至 Amazon SQS。詳情請參閱「設定值區通知 (SNS 主題或 SQS 佇列)」。
如果使用 Amazon SQS (Amazon S3 使用 Amazon SQS) 做為記錄檔收集方法,則需要 Amazon S3 和 Amazon SQS 的 IAM 使用者政策。詳情請參閱「搭配 AWS KMS 使用 IAM 政策」。
根據服務和區域,參閱下列 AWS 說明文件,找出連線端點:
如要瞭解任何記錄來源,請參閱「AWS Identity and Access Management 端點和配額」。
如要瞭解 Amazon S3 記錄來源,請參閱「Amazon Simple Storage Service 端點和配額」。
如要瞭解 Amazon SQS 記錄來源,請參閱「Amazon Simple Queue Service 端點和配額」。
如要瞭解 Amazon CloudWatch 記錄來源,請參閱「Amazon CloudWatch 記錄端點和配額」。
設定 Google SecOps 轉送器和系統記錄,擷取 AWS VPC 流量記錄
- 依序選取「SIEM 設定」>「轉送器」。
- 按一下「新增轉寄者」。
- 輸入轉送器的專屬名稱。
- 依序點選「提交」和「確認」。轉送器新增完成後,系統會顯示「新增收集器設定」視窗。
- 在「收集器名稱」欄位中輸入名稱。
- 在「記錄類型」欄位中,根據記錄格式選取「AWS VPC Flow」或「AWS VPC Flow (CSV)」。
- 在「收集器類型」欄位中,選取「Syslog」。
- 設定下列必要輸入參數:
- 通訊協定:指定收集器用來監聽系統記錄資料的連線通訊協定。
- 地址:指定收集器所在的目標 IP 位址或主機名稱,以及 Syslog 資料的地址。
- 通訊埠:指定收集器所在位置的目標通訊埠,並監聽系統記錄檔資料。
- 依序點選「提交」和「確認」。
如要進一步瞭解 Google SecOps 轉送器,請參閱 Google Security Operations 轉送器說明文件。如要瞭解各轉送器類型的相關規定,請參閱「依類型設定轉送器」。
如果在建立轉寄者時遇到問題,請與 Google Security Operations 支援團隊聯絡。
欄位對應參考資料
這個剖析器會將原始的 AWS VPC 流程記錄 (JSON 或 CSV 格式) 轉換為結構化 UDM 格式。這項服務會擷取相關欄位、對應這些欄位以符合 UDM 架構,並使用資源類型、雲端服務供應商和標籤等額外脈絡資訊擴充資料,以支援更深入的分析。兩種格式的對應邏輯一致:CSV 剖析器會依據預先定義的欄位順序,將值與 JSON 格式中使用的相同 UDM 欄位對齊。
AWS EC2 虛擬私有雲剖析器的 UDM 對應表
記錄欄位 (遞增) | UDM 對應 | 邏輯 |
---|---|---|
CidrBlock | event.idm.entity.entity.resource.attribute.labels.cidr_block | 直接從原始記錄中的「CidrBlock」欄位對應。 |
CidrBlock | event.idm.entity.entity.network.ip_subnet_range | 直接從原始記錄中的「CidrBlock」欄位對應。 |
CidrBlockAssociation.AssociationID | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id | 直接從原始記錄的「CidrBlockAssociation」陣列中對應「AssociationID」欄位。 |
CidrBlockAssociation.CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state | 直接對應原始記錄中「CidrBlockAssociation」陣列的「CidrBlockState」物件內「State」欄位。 |
CidrBlockAssociation.CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message | 直接對應原始記錄中「CidrBlockAssociation」陣列的「CidrBlockState」物件內「StatusMessage」欄位。 |
DhcpOptionsID | event.idm.entity.entity.resource.attribute.labels.dhcp_options_id | 直接從原始記錄中的「DhcpOptionsID」欄位對應。 |
ID | event.idm.entity.entity.resource.product_object_id | 直接從原始記錄中的「ID」欄位對應,並在剖析器中重新命名為「VpcID」。 |
ID | event.idm.entity.metadata.product_entity_id | 直接從原始記錄中的「ID」欄位對應,並在剖析器中重新命名為「VpcID」。 |
InstanceTenancy | event.idm.entity.entity.resource.attribute.labels.instance_tenancy | 直接從原始記錄中的「InstanceTenancy」欄位對應。 |
IsDefault | event.idm.entity.entity.resource.attribute.labels.is_default | 直接從原始記錄中的「IsDefault」欄位對應。 |
Ipv6CidrBlockAssociationSet.AssociationID | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id | 直接從原始記錄中的「Ipv6CidrBlockAssociationSet」陣列內「AssociationID」欄位對應。 |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block | 直接從原始記錄的「Ipv6CidrBlockAssociationSet」陣列中「Ipv6CidrBlock」欄位對應。 |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state | 直接對應原始記錄中「Ipv6CidrBlockAssociationSet」陣列的「Ipv6CidrBlockState」物件內「State」欄位。 |
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message | 直接對應原始記錄中「Ipv6CidrBlockAssociationSet」陣列的「Ipv6CidrBlockState」物件內「StatusMessage」欄位。 |
Ipv6CidrBlockAssociationSet.Ipv6Pool | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool | 直接從原始記錄中的「Ipv6CidrBlockAssociationSet」陣列內「Ipv6Pool」欄位對應。 |
Ipv6CidrBlockAssociationSet.NetworkBorderGroup | event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group | 直接從原始記錄中的「Ipv6CidrBlockAssociationSet」陣列內「NetworkBorderGroup」欄位對應。 |
OwnerID | event.idm.entity.entity.resource.attribute.labels.owner_id | 直接從原始記錄的「OwnerID」欄位對應。 |
狀態 | event.idm.entity.entity.resource.attribute.labels.state | 直接對應原始記錄中的「狀態」欄位。 |
TagSet.Key | event.idm.entity.entity.resource.attribute.labels.key | 直接對應原始記錄中「TagSet」陣列內的「Key」欄位。系統會為「TagSet」中的每個標記建立新標籤。 |
TagSet.Value | event.idm.entity.entity.resource.attribute.labels.value | 直接對應原始記錄中「TagSet」陣列內的「Value」欄位。這會填入從「鍵」欄位建立的每個對應標籤值。 |
不適用 | event.idm.entity.entity.resource.attribute.cloud.environment | 在剖析器程式碼中,硬式編碼為「AMAZON_WEB_SERVICES」。 |
不適用 | event.idm.entity.entity.resource.resource_type | 在剖析器程式碼中硬式編碼為「VPC_NETWORK」。 |
不適用 | event.idm.entity.metadata.collected_timestamp | 填入事件時間戳記,該時間戳記衍生自原始記錄中的「collection_time」欄位。 |
不適用 | event.idm.entity.metadata.entity_type | 在剖析器程式碼中,以硬式編碼方式設為「RESOURCE」。 |
不適用 | event.idm.entity.metadata.product_name | 在剖析器程式碼中硬式編碼為「Amazon VPC」。 |
不適用 | event.idm.entity.metadata.vendor_name | 在剖析器程式碼中硬式編碼為「AWS」。 |
不適用 | events.timestamp | 填入事件時間戳記,該時間戳記衍生自原始記錄中的「collection_time」欄位。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。