收集 AWS Control Tower 記錄

支援以下發布途徑:

本文件說明如何將 AWS Control Tower 記錄匯入 Google Security Operations。AWS Control Tower 可跨多個 AWS 帳戶進行治理、法規遵循和安全監控。這項整合功能可讓您分析 AWS Control Tower 的記錄,進一步掌握現況和安全防護機制。

事前準備

請確認您已完成下列必要條件:

  • Google SecOps 執行個體
  • AWS 特權存取權

設定 Amazon S3 儲存貯體

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

在 AWS Control Tower 中設定 CloudTrail

  1. 登入 AWS 管理主控台
  2. 前往 AWS Control Tower
  3. 在搜尋列中輸入「CloudTrail」,然後從服務清單中選取。
  4. 按一下「建立課程」建立新課程。

  5. 指定追蹤記錄設定:

    • 追蹤記錄名稱:為追蹤記錄提供有意義的名稱 (例如 ControlTowerTrail)。
    • 將記錄檔套用至所有區域:請務必選取「將記錄檔套用至所有區域」的「是」
    • 管理事件:請確認「讀取/寫入」事件已設為「全部」
    • 選用:資料事件:啟用 S3 資料事件和 Lambda 資料事件,以便擷取詳細資料活動。
    • 選用:日誌檔案驗證:啟用此選項,可確保儲存的日誌檔案不會遭到竄改。
  6. 在「事件」選取器中,選擇記錄管理事件資料事件

如何設定 CloudTrail

  1. 前往 AWS IAM 主控台。
  2. 按一下「角色」
  3. 搜尋 CloudTrail 使用的角色 AWSServiceRoleForCloudTrail (您設定 CloudTrail 時,系統會自動建立這個角色)。
  4. 在角色的「權限」分頁中,按一下「附加政策」
  5. 搜尋 CloudTrailS3DeliveryPolicy
  6. 勾選「CloudTrailS3DeliveryPolicy」政策旁的核取方塊。
  7. 按一下「附加政策」
  8. 前往 AWS CloudTrail 控制台。
  9. 在「Storage location」(儲存位置) 部分,選取「S3」做為記錄檔的儲存位置。
  10. 選取先前建立的 S3 值區
  11. 系統顯示提示時,請點選「允許」,授予 CloudTrail 寫入所選值區的記錄權限。
  12. 查看設定,然後按一下「建立」 (如果您要編輯現有課程,請按一下「儲存變更」)。

設定動態饋給

在 Google SecOps 平台中,有兩個不同的入口可用來設定動態消息:

  • SIEM 設定 > 動態饋給
  • 內容中心 > 內容包

依序前往「SIEM 設定」>「動態」設定動態

如要針對這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。

如要設定單一動態饋給,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一頁中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給的名稱 (例如「AWS Control Tower Logs」)。
  5. 選取「Amazon S3」做為「來源類型」
  6. 選取「AWS Control Tower」做為「記錄類型」
  7. 點選「下一步」
  8. 指定下列輸入參數的值:

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

    • 存取金鑰 ID:使用者具備從 S3 值區讀取權限的存取金鑰。

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

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

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

  9. 點選「下一步」

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

透過內容中心設定動態饋給

指定下列欄位的值:

  • 區域:Amazon S3 值區所在的區域。
  • S3 URI:值區 URI。
    • s3://your-log-bucket-name/
      • 請將 your-log-bucket-name 替換為實際的 S3 值區名稱。
  • URI 是:請根據您的桶層結構,選取「目錄」或「目錄 (包含子目錄)」
  • 來源刪除選項:根據擷取偏好設定選取刪除選項。
  • 存取金鑰 ID:使用者具備從 S3 值區讀取權限的存取金鑰。

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

進階選項

  • 動態饋給名稱:預先填入的值,用於識別動態饋給。
  • 來源類型:用於收集記錄並匯入 Google SecOps 的方法。
  • 資產命名空間與動態饋給相關聯的命名空間
  • 攝入標籤:套用至這個動態饋給中所有事件的標籤。

UDM 對應表

記錄欄位 UDM 對應 邏輯
awsAccountId target.user.group_identifiers 與事件相關聯的 AWS 帳戶 ID。
digestPublicKeyFingerprint target.file.sha1 用來簽署摘要的公開金鑰指紋。
digestPublicKeyFingerprint target.resource.attribute.labels.value 用來簽署摘要的公開金鑰指紋。
digestS3Bucket target.resource.name 摘要儲存位置的 S3 值區名稱。
digestS3Object target.file.full_path S3 bucket 中摘要物件的路徑。
digestSignatureAlgorithm network.tls.cipher 用於簽署摘要的演算法。
digestSignatureAlgorithm target.resource.attribute.labels.value 用於簽署摘要的演算法。
digestStartTime metadata.event_timestamp 摘要期間的開始時間。如果無法取得 eventTime,系統會使用此值做為事件時間。
eventCategory security_result.category_details 事件類別。
eventID metadata.product_log_id 事件的專屬 ID。
eventName metadata.product_event_type 事件的名稱。
eventName security_result.summary 事件名稱,用於產生安全性結果摘要。
eventSource target.application 事件的來源。
eventTime metadata.event_timestamp 事件發生的時間。
eventType additional.fields.value.string_value 事件類型。
logFiles.hashValue about.file.sha256 記錄檔案的 SHA-256 雜湊值。
logFiles.s3Bucket about.resource.name 記錄檔案儲存位置的 S3 值區名稱。
logFiles.s3Object about.file.full_path S3 bucket 中記錄檔物件的路徑。
previousDigestHashValue target.file.sha256 先前摘要的 SHA-256 雜湊。
recipientAccountId target.resource.attribute.labels.value 事件接收者的 AWS 帳戶 ID。
Records.awsRegion principal.location.name 事件發生的 AWS 區域。
Records.errorCode security_result.rule_id 與要求相關的錯誤代碼 (如果有的話)。
Records.errorMessage security_result.description 與要求相關聯的錯誤訊息 (如有)。
Records.eventCategory security_result.category_details 事件類別。
Records.eventID metadata.product_log_id 事件的專屬 ID。
Records.eventName metadata.product_event_type 事件的名稱。
Records.eventName security_result.summary 事件名稱,用於產生安全性結果摘要。
Records.eventSource target.application 事件的來源。
Records.eventTime metadata.event_timestamp 事件發生的時間。
Records.eventType additional.fields.value.string_value 事件類型。
Records.requestID target.resource.attribute.labels.value 要求的 ID。
Records.requestParameters.groupName target.group.group_display_name 與要求相關聯的群組名稱 (如有)。
Records.requestParameters.userName src.user.userid 與要求相關聯的使用者名稱 (如果有的話)。
Records.requestParameters.userName src.user.user_display_name 與要求相關聯的使用者名稱 (如果有的話)。
Records.responseElements.ConsoleLogin security_action 主控台登入嘗試的結果。
Records.responseElements.ConsoleLogin security_result.summary 控制台登入嘗試的結果,用於產生安全性結果摘要。
Records.sourceIPAddress principal.hostname 主體的 IP 位址。如果不是有效的 IP 位址,則會用做主機名稱。
Records.sourceIPAddress principal.ip 主體的 IP 位址。
Records.tlsDetails.cipherSuite network.tls.cipher 用於 TLS 連線的加密套件。
Records.tlsDetails.tlsVersion network.tls.version 用於連線的 TLS 版本。
Records.userAgent network.http.user_agent 要求的使用者代理程式。
Records.userIdentity.accessKeyId additional.fields.value.string_value 用於要求的存取金鑰 ID。
Records.userIdentity.accountId principal.user.group_identifiers 使用者的 AWS 帳戶 ID。
Records.userIdentity.arn principal.user.attribute.labels.value 使用者的 ARN。
Records.userIdentity.arn target.user.userid 使用者的 ARN。如果無法取得 userName,則使用此值做為 userid。
Records.userIdentity.principalId principal.user.product_object_id 使用者的主要 ID。
Records.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels.value 要求是否使用了多重身份驗證。
Records.userIdentity.sessionContext.sessionIssuer.userName principal.user.userid 發出工作階段的使用者使用者名稱。
Records.userIdentity.type principal.resource.type 要求使用的身分類型。
Records.userIdentity.userName target.user.userid 使用者的使用者名稱。
- extensions.auth.mechanism 設為「REMOTE」。
- metadata.event_type 根據 eventName 將這個欄位設為「STATUS_UPDATE」、「USER_RESOURCE_ACCESS」、「USER_LOGIN」或「GENERIC_EVENT」。
- metadata.log_type 設為「AWS_CONTROL_TOWER」。
- metadata.product_name 將其設為「AWS Control Tower」。
- metadata.vendor_name 設為「AWS」。
- principal.asset.attribute.cloud.environment 設為「AMAZON_WEB_SERVICES」。
- security_result.action 根據 errorCode 設為「ALLOW」或「BLOCK」。
- security_result.severity 設為「INFORMATIONAL」。

異動

2024-03-17

  • 改善:
  • 將「req.userIdentity.arn」和「req.userIdentity.userName」對應至「target.user.userid」。

2023-01-04

  • 改善:
  • 初始化變數,避免在 For 迴圈中複製資料。

2022-12-15

  • 改善:
  • 將「metadata.vendor_name」對應至「AWS」。
  • 將「metadata.product_name」對應至「AWS Control Tower」。
  • 當「eventName」為「ConsoleLogin」時,將「metadata.event_type」對應至「USER_LOGIN」。
  • 當「eventName」為「ConsoleLogin」時,將「security_result.severity」對應至「INFORMATIONAL」。

2022-11-17

  • 改善:
  • 將「req.userIdentity.userName」和「req.userIdentity.sessionContext.sessionIssuer.userName」對應至「target.user.id」。
  • 將「ConsoleLogin:Success」對應至「security_result.action」。
  • 從「sourceIPAddress」對應至「principal.port」的通訊埠資訊。

2022-10-31

  • 新建的剖析器。

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