收集 AWS EC2 主機記錄

支援以下發布途徑:

本文說明如何將 AWS EC2 主機記錄整合至 Google Security Operations,以便監控及分析。整合作業包括剖析及對應 EC2 主機記錄至統一資料模型 (UDM)、執行資料轉換,以及在 EC2 主機和執行個體之間建立關係。記錄檔可提供有關執行個體、主機屬性、執行個體類型和效能指標的重要資訊,可用於安全監控、稽核和法規遵循。

事前準備

  • 確認您有 Google SecOps 執行個體。
  • 確認您具備 AWS 特權存取權。

設定 AWS IAM 和 S3

  1. 按照建立值區中的使用者手冊指示,建立 Amazon S3 值區
  2. 請儲存值區的「名稱」和「區域」,以供日後使用。
  3. 請按照建立 IAM 使用者中的使用者指南建立使用者。
  4. 選取已建立的「使用者」
  5. 選取「安全性憑證」分頁標籤。
  6. 在「Access Keys」部分中,按一下「Create Access Key」
  7. 選取「第三方服務」做為用途
  8. 點按「Next」
  9. 選用:新增說明標記。
  10. 按一下「建立存取金鑰」
  11. 按一下「下載 CSV 檔案」,即可儲存存取金鑰密式存取金鑰,以供日後使用。
  12. 按一下 [完成]
  13. 選取 [權限] 分頁標籤。
  14. 在「權限政策」部分,按一下「新增權限」
  15. 選取「新增權限」
  16. 選取「直接附加政策」
  17. 搜尋並選取「AmazonS3FullAccess」AmazonS3FullAccess政策。
  18. 點按「Next」
  19. 按一下「新增權限」

為 AWS KMS 設定 CloudTrail

  1. 登入 AWS 管理主控台
  2. 在搜尋列中輸入「CloudTrail」,然後從服務清單中選取CloudTrail
  3. 按一下「建立軌跡」
  4. 提供踏查路線名稱,例如 EC2-Activity-Trail
  5. 勾選「為貴機構的所有帳戶啟用」核取方塊。
  6. 輸入先前建立的 S3 值區 URI (格式應為 s3://your-log-bucket-name/),或建立新的 S3 值區。
  7. 如果已啟用 SSE-KMS,請提供 AWS KMS 別名的名稱,或選擇現有的 AWS KMS 金鑰
  8. 其他設定可維持預設值。
  9. 點按「Next」
  10. 選取「事件類型」下方的「管理事件」和「資料事件」,即可擷取 EC2 主機活動。
  11. 點按「Next」
  12. 在「查看並建立」中查看設定。
  13. 按一下「建立軌跡」
  14. 選用步驟:如果您建立了新的值區,請繼續執行下列程序:
    • 前往 S3
    • 找出並選取新建立的記錄檔值區。
    • 選取資料夾 AWSLogs
    • 按一下「複製 S3 URI」並儲存。

在 Google SecOps 中設定動態饋給,以便擷取 AWS EC2 主機

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增」
  3. 在「動態饋給名稱」欄位中輸入動態饋給的名稱,例如「AWS EC2 主機記錄」
  4. 選取「Amazon S3」做為「來源類型」
  5. 選取「AWS EC2 主機」做為「記錄類型」
  6. 點按「Next」
  7. 指定下列輸入參數的值:

    • 區域:Amazon S3 值區所在的區域。
    • S3 URI:值區 URI。
      • s3://your-log-bucket-name/
        • 請將 your-log-bucket-name 替換為值區的實際名稱。
    • URI 是:選取「目錄」或「目錄 (包含子目錄)」
    • 來源刪除選項:根據個人偏好選取刪除選項。

    • 存取金鑰 ID:可存取 S3 值區的使用者存取金鑰。

    • 私密存取金鑰:具有 S3 值區存取權的使用者私密金鑰。

    • 資產命名空間資產命名空間

    • 攝入標籤:要套用至這個動態饋給事件的標籤。

  8. 點按「Next」

  9. 在「完成」畫面中查看新的動態饋給設定,然後按一下「提交」

UDM 對應表

記錄欄位 UDM 對應 邏輯
AllocationTime entity.metadata.creation_timestamp AllocationTime 欄位會解析為時間戳記,並對應至 creation_timestamp 欄位。剖析器會嘗試各種格式 (yyyy-MM-dd HH:mm:ss、RFC 3339、UNIX、ISO8601)。
AllowsMultipleInstanceTypes entity.entity.asset.attribute.labels.value 原始記錄檔中的 AllowsMultipleInstanceTypes 值會用做標籤的值。這個標籤的鍵設為 allows_multiple_instance_types
AutoPlacement entity.entity.asset.attribute.labels.value 原始記錄檔中的 AutoPlacement 值會用做標籤的值。這個標籤的鍵設為 auto_placement
AvailabilityZone entity.entity.asset.attribute.cloud.availability_zone AvailabilityZone 欄位會直接對應至 availability_zone 欄位。
AvailabilityZoneID entity.entity.asset.attribute.labels.value 原始記錄檔中的 AvailabilityZoneID 值會用做標籤的值。這個標籤的鍵設為 availability_zone_id
AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity entity.entity.asset.attribute.labels.value AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity 的值 (或重新命名後的 AvailableCapacity.Instance.Available) 會轉換為字串,並用於標籤的值。鍵已設為 available_instance_capacity_available_capacity
AvailableCapacity.AvailableInstanceCapacity.InstanceType entity.entity.asset.attribute.labels.value AvailableCapacity.AvailableInstanceCapacity.InstanceType 的值 (或重新命名後的 AvailableCapacity.Instance.Type) 會用做標籤的值。鍵已設為 available_instance_capacity_instance_type
AvailableCapacity.AvailableInstanceCapacity.TotalCapacity entity.entity.asset.attribute.labels.value AvailableCapacity.AvailableInstanceCapacity.TotalCapacity 的值 (或重新命名後的 AvailableCapacity.Instance.Total) 會轉換為字串,並用於標籤的值。鍵已設為 total_capacity
AvailableCapacity.AvailableVCpus entity.entity.asset.attribute.labels.value AvailableCapacity.AvailableVCpus 的值 (或重新命名後的 AvailableCapacity.VCPUs) 會轉換為字串,並用於標籤的值。鍵已設為 available_v_cpus
ClientToken entity.entity.asset.attribute.labels.value 原始記錄檔中的 ClientToken 值會用做標籤的值。這個標籤的鍵設為 client_token
HostID entity.metadata.product_entity_id HostID (或重新命名後的 ID) 欄位會直接對應至 product_entity_id 欄位。
HostID entity.entity.asset.asset_id HostID (或重新命名後的 ID) 欄位會直接對應至 asset_id 欄位。
HostMaintenance entity.entity.asset.attribute.labels.value 原始記錄檔中的 HostMaintenance 值 (或重新命名後的 Maintenance) 會用做標籤的值。這個標籤的鍵已設為 host_maintenance
HostProperties.Cores entity.entity.asset.hardware.cpu_number_cores HostProperties.Cores 的值會轉換為無正負號整數,並對應至 cpu_number_cores
HostProperties.InstanceFamily entity.entity.asset.attribute.labels.value 原始記錄檔中的 HostProperties.InstanceFamily 值會用做標籤的值。這個標籤的鍵設為 host_properties_instance_family
HostProperties.InstanceType entity.entity.asset.attribute.labels.value 原始記錄檔中的 HostProperties.InstanceType 值會用做標籤的值。這個標籤的鍵設為 host_properties_instance_type
HostProperties.Sockets entity.entity.asset.attribute.labels.value HostProperties.Sockets 的值會轉換為字串,並用做標籤的值。鍵已設為 host_properties_sockets
HostProperties.TotalVCpus entity.entity.asset.attribute.labels.value HostProperties.TotalVCpus 的值 (或重新命名後的 HostProperties.TotalVCPUs) 會轉換為字串,並用於標籤的值。鍵已設為 host_properties_total_v_cpus
HostRecovery entity.entity.asset.attribute.labels.value 原始記錄檔中的 HostRecovery 值 (或重新命名後的 Recovery) 會用做標籤的值。這個標籤的鍵設為 host_recovery
HostReservationID entity.entity.asset.attribute.labels.value 原始記錄檔中的 HostReservationID 值 (或重新命名後的 ReservationID) 會用做標籤的值。這個標籤的鍵設為 host_reservation_id
MemberOfServiceLinkedResourceGroup entity.entity.asset.attribute.labels.value MemberOfServiceLinkedResourceGroup 的值會轉換為字串,並用做標籤的值。鍵已設為 member_of_service_linked_resource_group
OwnerID entity.entity.asset.attribute.labels.value 原始記錄檔中的 OwnerID 值會用做標籤的值。這個標籤的鍵設為 owner_id
ReleaseTime entity.entity.asset.attribute.labels.value 原始記錄檔中的 ReleaseTime 值會用做標籤的值。這個標籤的鍵設為 release_time
State entity.entity.asset.attribute.labels.value 原始記錄檔中的 State 值會用做標籤的值。這個標籤的鍵設為 state
TagSet entity.entity.asset.attribute.labels 系統會逐一檢查 TagSet 陣列,並分別將每個標記的 KeyValue 用作標籤的鍵和值。剖析器會將 AMAZON_WEB_SERVICES 值指派給這個欄位。原始記錄檔中的 collection_time 會對應至 collected_timestamp 欄位。剖析器會將 ASSET 值指派給這個欄位。剖析器會將 AWS EC2 HOSTS 值指派給這個欄位。剖析器會將 AWS 值指派給這個欄位。關係是從 InstancesOutpostArn 欄位衍生而來,但這些欄位本身並未直接對應至 IDM 物件。剖析器邏輯會根據這些欄位建立關聯物件,並將這些物件合併至 relations 陣列。
collection_time entity.metadata.collected_timestamp 記錄的 collection_time 會用做事件的 collected_timestamp

異動

2024-01-31

  • 新增對新結構定義的支援。

2023-12-14

  • 新建的剖析器。

還有其他問題嗎?向社群成員和 Google SecOps 專家尋求解答。