收集 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. 儲存 bucket 的「名稱」和「區域」,稍後會用到。
  3. 按照這份使用者指南建立使用者:建立 IAM 使用者
  4. 選取建立的「使用者」
  5. 選取「安全憑證」分頁標籤。
  6. 在「Access Keys」部分中,按一下「Create Access Key」
  7. 選取「第三方服務」做為「用途」
  8. 點選「下一步」
  9. 選用:新增說明標記。
  10. 按一下「建立存取金鑰」
  11. 按一下「下載 CSV 檔案」,儲存「存取金鑰」和「私密存取金鑰」,以供日後使用。
  12. 按一下 [完成]
  13. 選取 [權限] 分頁標籤。
  14. 在「Permissions policies」(權限政策) 區段中,按一下「Add permissions」(新增權限)
  15. 選取「新增權限」
  16. 選取「直接附加政策」
  17. 搜尋並選取 AmazonS3FullAccessCloudWatchLogsFullAccess 政策。
  18. 點選「下一步」
  19. 按一下「Add permissions」。

在 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. 在角色的「Permissions」(權限) 分頁中,按一下「Attach policies」(附加政策)
  5. 搜尋 CloudTrailS3DeliveryPolicy
  6. 選取「CloudTrailS3DeliveryPolicy」政策旁的核取方塊。
  7. 按一下「附加政策」
  8. 前往 AWS CloudTrail 控制台。
  9. 在「儲存位置」部分,選取「S3」做為記錄檔的目的地。
  10. 選取您先前建立的 S3 值區
  11. 系統提示時,請按一下「允許」,授予 CloudTrail 權限,將記錄寫入所選 bucket。
  12. 檢查設定,然後按一下「建立」 (或「儲存變更」,如果編輯的是現有追蹤記錄)。

設定動態饋給

在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:

  • 依序點選「SIEM 設定」>「動態饋給」>「新增」
  • 依序點選「內容中心」「內容包」「開始使用」

如何設定 AWS Control Tower 動態饋給

  1. 按一下「Amazon Cloud Platform」套件。
  2. 找出「AWS Control Tower」記錄檔類型。
  3. 在下列欄位中指定值。

    • 來源類型:Amazon SQS V2
    • 佇列名稱:要從中讀取的 SQS 佇列名稱
    • S3 URI:bucket URI。
      • s3://your-log-bucket-name/
        • 請將 your-log-bucket-name 替換為 S3 值區的實際名稱。
    • 來源刪除選項:根據擷取偏好設定選取刪除選項。

    • 檔案存在時間上限:包含在過去天數內修改的檔案。預設值為 180 天。

    • SQS 佇列存取金鑰 ID:帳戶存取金鑰,為 20 個字元的英數字串。

    • SQS 佇列存取密鑰:帳戶存取金鑰,為 40 個字元的英數字串。

    進階選項

    • 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
    • 資產命名空間:與動態饋給相關聯的命名空間。
    • 擷取標籤:套用至這個動態饋給所有事件的標籤。
  4. 點選「建立動態饋給」

如要進一步瞭解如何為這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。

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 要求的 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。如果沒有使用者名稱,則會做為使用者 ID。
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」。

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