收集 AWS 虛擬私有雲流量記錄
本文件說明如何使用 Google 安全作業轉送程式收集 AWS VPC 流量記錄。
詳情請參閱「將資料擷取至 Google Security Operations」。
擷取標籤會標示剖析器,將原始記錄資料正規化為具結構性的 UDM 格式。本文中的資訊適用於使用 AWS_VPC_FLOW
攝入標籤的剖析器。
事前準備
確認已建立 Amazon S3 值區。詳情請參閱「建立第一個 S3 儲存體」。
確認已建立 Amazon CloudWatch 日誌群組。詳情請參閱「使用記錄群組和記錄串流」。
設定 AWS 虛擬私有雲流程
根據您要將日誌轉送至 Amazon S3 還是 Amazon CloudWatch,設定 AWS VPC Flow。
如要瞭解如何將記錄轉送至 Amazon S3 儲存體,請參閱本文的「設定流量記錄,將記錄轉送至 Amazon S3」一節。
如要瞭解如何將記錄轉送至 Amazon CloudWatch,請參閱本文件的「將流量記錄轉送至 Amazon CloudWatch」一節。
設定流量記錄,將記錄轉送至 Amazon S3
建立及設定 Amazon S3 儲存桶後,您可以為網路介面、子網路和 VPC 網路建立流量記錄。
建立網路介面的流量記錄
- 登入 Amazon EC2 控制台。
- 在導覽窗格中,選取「Network Interfaces」。
- 選取一或多個網路介面。
- 依序選取「動作」>「建立流量記錄」。
- 設定流量記錄設定。詳情請參閱本文的「設定流程記錄檔設定」一節。
建立子網路的流程記錄
- 登入 Amazon VPC 主控台。
- 在導覽窗格中,選取「子網路」。
- 選取一或多個子網路。
- 依序選取「動作」>「建立流量記錄」。
- 設定流量記錄設定。詳情請參閱本文的「設定流程記錄檔設定」一節。
建立虛擬私有雲的流量記錄
- 登入 Amazon VPC 主控台。
- 在導覽窗格中,選取「VPC」。
- 選取一或多個 VPC。
- 依序選取「動作」>「建立流量記錄」。
- 設定流量記錄設定。詳情請參閱本文的「設定流程記錄檔設定」一節。
設定流量記錄
在「Filter」(篩選器) 部分,指定要記錄的 IP 流量:
接受:只記錄已接受的流量。
拒絕:只記錄已拒絕的流量。
全部:記錄已接受和拒絕的流量。
在「Maximum aggregation interval」(最大匯總間隔) 部分,選取「1 分鐘」。
在「目的地」部分,選取「傳送至 Amazon S3 值區」。
在「S3 bucket ARN」部分,指定 Amazon S3 值區的 ARN。
在「Log record format」部分,請為流量記錄記錄指定下列格式:
- 如要使用預設的資料流記錄記錄格式,請選取「AWS 預設格式」。
- 如要建立自訂格式,請選取「自訂格式」。
使用自訂 AWS 記錄格式設定 VPC 記錄流程,以便使用 MSS 真實 IP 功能。
在「記錄格式」清單中,選取所有屬性。
在「格式預覽」部分中,查看自訂格式。
在「Log file format」部分中,選取「Text (預設)」。
在「Hive 相容的 S3 前置字串」部分,請勿勾選「啟用」核取方塊。
在「依時間分割記錄」部分,選取「每 1 小時 (60 分鐘)」。
如要將標記新增至流程記錄,請選取「新增標記」,然後指定標記鍵和值。
選取「建立流程記錄」。詳情請參閱「將流程記錄發布至 Amazon S3」。
設定流程記錄到 Amazon CloudWatch
您可以透過虛擬私有雲、子網路或網路介面設定流量記錄。
在「Filter」部分,指定要記錄的 IP 流量類型:
接受:只記錄已接受的流量。
拒絕:只記錄已拒絕的流量。
全部:記錄已接受和拒絕的流量。
在「Maximum aggregation interval」(最大匯總間隔) 部分,選取「1 分鐘」。
在「目的地」部分中,選取「傳送至 CloudWatch 記錄」。
在「目的地記錄檔群組」部分中,提供您建立的目的地記錄檔群組名稱。
在「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 使用身分與存取權管理政策」。
根據服務和地區,參閱下列 AWS 說明文件,找出連線端點:
如要瞭解任何記錄來源,請參閱「AWS Identity and Access Management 端點和配額」。
如要瞭解 Amazon S3 記錄來源,請參閱「Amazon Simple Storage Service 端點和配額」。
如要瞭解 Amazon SQS 記錄來源,請參閱「Amazon Simple Queue Service 端點和配額」。
如要瞭解 Amazon CloudWatch 記錄來源,請參閱「Amazon CloudWatch 記錄端點和配額」。
設定 Google Security Operations 轉送器和 Syslog,以便擷取 AWS VPC 流量記錄
- 依序選取「SIEM 設定」>「轉送器」。
- 按一下「新增轉寄者」。
- 輸入轉發器名稱的專屬名稱。
- 依序點選「提交」和「確認」。系統會新增轉送器,並顯示「Add collector configuration」視窗。
- 在「收集器名稱」欄位中輸入名稱。
- 在「Log type」欄位中,選取「AWS VPC Flow」。
- 在「收集器類型」欄位中,選取「Syslog」。
- 設定下列必要輸入參數:
- 通訊協定:指定收集器用來監聽 syslog 資料的連線通訊協定。
- Address:指定收集器所在的目標 IP 位址或主機名稱,以及 syslog 資料的位址。
- Port:指定收集器所在位置,並監聽 syslog 資料。
- 依序點選「提交」和「確認」。
如要進一步瞭解 Google Security Operations 轉送器,請參閱 Google Security Operations 轉送器說明文件。如要瞭解各轉送器類型的相關規定,請參閱「依類型分類的轉送器設定」。
如果在建立轉送器時遇到問題,請與 Google 安全作業支援團隊聯絡。
欄位對應參考資料
這個剖析器程式碼會擷取以 JSON 格式描述 EC2 VPC 事件的原始 AWS CloudTrail 記錄,並將這些記錄轉換為結構化 UDM 格式。這項工具會擷取相關欄位,並將名稱重新命名為符合 UDM 架構,同時加入資源類型、雲端環境和標籤等額外背景資訊,方便您進行分析。
AWS EC2 VPC 剖析器的 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 | 直接從原始記錄中的「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」欄位對應而來。這會為每個對應的標籤填入值,這些標籤是從「Key」欄位建立。 |
不適用 | 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 專家尋求解答。