收集 AWS 虛擬私有雲流量記錄

支援以下發布途徑:

本文件說明如何使用 Google 安全作業轉送程式收集 AWS VPC 流量記錄。

詳情請參閱「將資料擷取至 Google Security Operations」。

擷取標籤會標示剖析器,將原始記錄資料正規化為具結構性的 UDM 格式。本文中的資訊適用於使用 AWS_VPC_FLOW 攝入標籤的剖析器。

事前準備

設定 AWS 虛擬私有雲流程

根據您要將日誌轉送至 Amazon S3 還是 Amazon CloudWatch,設定 AWS VPC Flow。

設定流量記錄,將記錄轉送至 Amazon S3

建立及設定 Amazon S3 儲存桶後,您可以為網路介面、子網路和 VPC 網路建立流量記錄。

建立網路介面的流量記錄

  1. 登入 Amazon EC2 控制台。
  2. 在導覽窗格中,選取「Network Interfaces」
  3. 選取一或多個網路介面。
  4. 依序選取「動作」>「建立流量記錄」
  5. 設定流量記錄設定。詳情請參閱本文的「設定流程記錄檔設定」一節。

建立子網路的流程記錄

  1. 登入 Amazon VPC 主控台。
  2. 在導覽窗格中,選取「子網路」
  3. 選取一或多個子網路。
  4. 依序選取「動作」>「建立流量記錄」
  5. 設定流量記錄設定。詳情請參閱本文的「設定流程記錄檔設定」一節。

建立虛擬私有雲的流量記錄

  1. 登入 Amazon VPC 主控台。
  2. 在導覽窗格中,選取「VPC」
  3. 選取一或多個 VPC。
  4. 依序選取「動作」>「建立流量記錄」
  5. 設定流量記錄設定。詳情請參閱本文的「設定流程記錄檔設定」一節。

設定流量記錄

  1. 在「Filter」(篩選器) 部分,指定要記錄的 IP 流量:

    • 接受:只記錄已接受的流量。

    • 拒絕:只記錄已拒絕的流量。

    • 全部:記錄已接受和拒絕的流量。

  2. 在「Maximum aggregation interval」(最大匯總間隔) 部分,選取「1 分鐘」

  3. 在「目的地」部分,選取「傳送至 Amazon S3 值區」

  4. 在「S3 bucket ARN」部分,指定 Amazon S3 值區的 ARN。

  5. 在「Log record format」部分,請為流量記錄記錄指定下列格式:

    1. 如要使用預設的資料流記錄記錄格式,請選取「AWS 預設格式」
    2. 如要建立自訂格式,請選取「自訂格式」
  6. 使用自訂 AWS 記錄格式設定 VPC 記錄流程,以便使用 MSS 真實 IP 功能。

  7. 在「記錄格式」清單中,選取所有屬性。

  8. 在「格式預覽」部分中,查看自訂格式。

  9. 在「Log file format」部分中,選取「Text (預設)」

  10. 在「Hive 相容的 S3 前置字串」部分,請勿勾選「啟用」核取方塊。

  11. 在「依時間分割記錄」部分,選取「每 1 小時 (60 分鐘)」

  12. 如要將標記新增至流程記錄,請選取「新增標記」,然後指定標記鍵和值。

  13. 選取「建立流程記錄」。詳情請參閱「將流程記錄發布至 Amazon S3」。

設定流程記錄到 Amazon CloudWatch

您可以透過虛擬私有雲、子網路或網路介面設定流量記錄。

  1. 在「Filter」部分,指定要記錄的 IP 流量類型:

    • 接受:只記錄已接受的流量。

    • 拒絕:只記錄已拒絕的流量。

    • 全部:記錄已接受和拒絕的流量。

  2. 在「Maximum aggregation interval」(最大匯總間隔) 部分,選取「1 分鐘」

  3. 在「目的地」部分中,選取「傳送至 CloudWatch 記錄」

  4. 在「目的地記錄檔群組」部分中,提供您建立的目的地記錄檔群組名稱。

  5. 在「IAM 角色」清單中,選取角色名稱。所選角色名稱具有發布記錄到 CloudWatch 記錄的權限。

    IAM 角色必須包含下列權限:

       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "logs:CreateLogGroup",
               "logs:CreateLogStream",
               "logs:PutLogEvents",
               "logs:DescribeLogGroups",
               "logs:DescribeLogStreams"
           ],
           "Resource": "*"
         }
        ]
       }
    
  6. 在「記錄記錄格式」部分,為流量記錄選取「自訂格式」

  7. 如要將標記新增至流程記錄,請選取「新增標記」,然後指定標記鍵和值。

  8. 選取「建立流程記錄」。詳情請參閱「將流程記錄發布至 Amazon S3」。

您可以將 Amazon S3 設為將事件通知傳送至 Amazon SQS。詳情請參閱「設定通知值區 (SNS 主題或 SQS 佇列)」。

如果您使用 Amazon SQS (Amazon S3 使用 Amazon SQS) 做為記錄收集方法,則必須為 Amazon S3 和 Amazon SQS 建立 IAM 使用者政策。詳情請參閱「搭配 AWS KMS 使用身分與存取權管理政策」。

根據服務和地區,參閱下列 AWS 說明文件,找出連線端點:

設定 Google Security Operations 轉送器和 Syslog,以便擷取 AWS VPC 流量記錄

  1. 依序選取「SIEM 設定」>「轉送器」
  2. 按一下「新增轉寄者」
  3. 輸入轉發器名稱的專屬名稱。
  4. 依序點選「提交」和「確認」。系統會新增轉送器,並顯示「Add collector configuration」視窗。
  5. 在「收集器名稱」欄位中輸入名稱。
  6. 在「Log type」欄位中,選取「AWS VPC Flow」
  7. 在「收集器類型」欄位中,選取「Syslog」
  8. 設定下列必要輸入參數:
    • 通訊協定:指定收集器用來監聽 syslog 資料的連線通訊協定。
    • Address:指定收集器所在的目標 IP 位址或主機名稱,以及 syslog 資料的位址。
    • Port:指定收集器所在位置,並監聽 syslog 資料。
  9. 依序點選「提交」和「確認」

如要進一步瞭解 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 專家尋求解答。