收集 AWS CloudWatch 記錄
本文說明如何使用 Amazon S3 或 Amazon Kinesis Data Firehose,將 AWS CloudWatch 記錄檔擷取至 Google Security Operations。AWS CloudWatch 是一項監控和可觀測性服務,會以記錄、指標和事件的形式收集作業資料。整合這項資源,即可將這些記錄傳送至 Google SecOps 進行分析和監控。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- AWS 的特殊存取權
使用 AWS S3 設定 CloudWatch 記錄匯出功能
您必須定期執行這項匯出程序,才能將最新的 CloudWatch 記錄檔擷取至 S3。
建立 Amazon S3 儲存貯體
建議您使用專為 CloudWatch 記錄建立的 bucket。
- 開啟 Amazon S3 控制台。
- 如有需要,可以變更「區域」。
- 在導覽列中,選取 CloudWatch Logs 所在的區域。
 
- 按一下「建立 Bucket」。
- 值區名稱:輸入值區的名稱,方便您辨識。
- 區域:選取 CloudWatch Logs 資料所在的區域。
- 點選「建立」。
 
建立 IAM 使用者,並授予 Amazon S3 和 CloudWatch Logs 的完整存取權
- 開啟 IAM 主控台。
- 依序點選「使用者」>「建立使用者」。
- 在「使用者名稱」欄位中輸入名稱 (例如 CWExport)。
- 同時選取「程式輔助存取」和「AWS 管理主控台存取」。
- 選取「自動產生密碼」或「自訂密碼」。
- 點選 [Next: Permissions] (下一步:權限)。
- 選擇「直接附加現有政策」。
- 搜尋並選取「AmazonS3FullAccess」和「CloudWatchLogsFullAccess」政策,指派給使用者。
- 按一下「下一步:代碼」。
- 按一下 [下一步:檢閱]。
- 按一下「建立使用者」。
設定 Amazon S3 值區的權限
- 在 Amazon S3 管理中心中,選擇您先前建立的值區。
- 依序點選「Permissions」(權限)「Bucket policy」(儲存空間政策)。
- 在「Bucket Policy Editor」(值區政策編輯器) 中,新增下列政策。 - { "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::cw-exported-logs", "Principal": { "Service": "logs.us-east-1.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-east-1.amazonaws.com" } } ] }
- 變更及更新下列 - json變數:- 將 cw-exported-logs變更為 S3 值區的名稱。
- 將 random-string變更為隨機產生的字元字串。
- 請務必為「主體」指定正確的「區域端點」。
 
- 將 
- 按一下 [儲存]。 
設定 CloudWatch 匯出功能
- 以先前建立的 IAM 使用者身分登入。
- 開啟 CloudWatch 控制台。
- 在導覽選單中,選取「記錄檔群組」。
- 選取現有或建立新的記錄群組名稱。
- 依序選擇「動作」>「將資料匯出至 Amazon S3」。
- 在「Export data to Amazon S3」(將資料匯出至 Amazon S3) 畫面中,找到「Define data export」(定義資料匯出)。
- 使用「從」和「到」設定要匯出資料的時間範圍。 
- 選擇 S3 值區:選取與 Amazon S3 值區相關聯的帳戶。 
- S3 bucket name:選取 Amazon S3 bucket。 
- S3 Bucket prefix:輸入您在儲存空間政策中指定的隨機產生字串。 
- 選擇「匯出」,將記錄資料匯出至 Amazon S3。 
- 如要查看匯出至 Amazon S3 的記錄資料狀態,請依序選取「動作」> 查看所有匯出至 Amazon S3 的項目。 
在 Google SecOps 中設定動態饋給,擷取 AWS CloudWatch 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 AWS CloudWatch Logs)。
- 選取「Amazon S3 V2」做為「來源類型」。
- 選取「AWS CloudWatch」做為「記錄類型」。
- 點選「下一步」。
- 指定下列輸入參數的值: - S3 URI:bucket URI
- s3://your-log-bucket-name/- 請將 your-log-bucket-name替換為實際值區名稱。
 
- 請將 
- 來源刪除選項:根據偏好選取刪除選項。 
- 檔案存在時間上限:預設為 180 天。 
- 存取金鑰 ID:具有 S3 值區存取權的使用者存取金鑰。 
- 存取密鑰:具有 S3 bucket 存取權的使用者私密金鑰。 
- 資產命名空間:資產命名空間。 
- 擷取標籤:要套用至這個動態饋給事件的標籤。 
 
- 點選「下一步」。 
- 在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」。 
使用 AWS Data Firehose 設定 CloudWatch 記錄匯出功能
完成初始設定後,您不必定期執行這項匯出程序。
在 Google SecOps 中設定資訊提供,擷取 AWS CloudWatch Logs
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「+ 新增動態消息」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 AWS CloudWatch Logs)。
- 選取「Amazon Data Firehose」做為「來源類型」。
- 選取「AWS CloudWatch」做為「記錄類型」。
- 點選「下一步」。
- 指定下列輸入參數的值:
- 分割分隔符:選用 \n。
- 資產命名空間:資產命名空間。
- 擷取標籤:要套用至這個動態饋給事件的標籤。
 
- 分割分隔符:選用 
- 點選「下一步」。
- 檢查動態饋給設定,然後按一下「提交」。
- 按一下「產生密鑰」,產生驗證這個動態饋給的密鑰。
- 複製並儲存密鑰,因為您無法再次查看這個值。
- 前往「詳細資料」分頁。
- 從「端點資訊」欄位複製動態消息端點網址。
- 按一下 [完成]。
為 Amazon Data Firehose 動態饋給建立 API 金鑰
- 前往 Google Cloud 控制台的「憑證」頁面。
- 依序按一下「建立」憑證和「API 金鑰」。
- 將 API 金鑰存取權限制為 Google SecOps API。
指定端點網址
如要在 Amazon Data Firehose 中指定 HTTPS 端點和存取金鑰,請按照下列步驟操作:
- 將 API 金鑰附加至動態消息端點網址,並以以下格式指定這個網址做為 HTTP 端點網址: - ENDPOINT_URL?key=API_KEY- 更改下列內容: - ENDPOINT_URL:動態消息端點網址。
- API_KEY:用於向 Google SecOps 進行驗證的 API 金鑰。
 
 
存取金鑰:指定建立 Amazon Data Firehose 動態饋給時取得的私密金鑰。
將 Amazon Kinesis Data Firehose 設定為 Google SecOps {:#configure-kinesis-secops}。
- 在 AWS 控制台中,依序前往「Kinesis」>「Data Firehose」>「Create delivery stream」。
- 提供下列設定詳細資料:
- 來源:選取「直接 PUT 或其他來源」。
- 目的地:選擇「HTTP 端點」。
- HTTP 端點網址:輸入 Google SecOps 提供的「動態饋給 HTTPS 端點網址」和 API 金鑰。
- HTTP 方法:選取「POST」。
 
- 在「存取金鑰」下方,輸入下列詳細資料:
- 密鑰標頭:<HEADER_NAME_FOR_SECRET>,值為<YOUR_SECRET_KEY>
- 緩衝區提示:將「緩衝區大小」設為 1 MiB,將「緩衝區間隔」設為 60 秒。
- 壓縮:選取「已停用」。
- S3 備份:選取「已停用」。
- 將「retry」(重試) 和「logging」(記錄) 設定保留為「default」(預設)。
 
- 密鑰標頭:
- 按一下「建立傳送串流」。
設定 IAM 權限並訂閱記錄群組
- 在 AWS Console 中,依序前往「IAM」>「Policies」>「Create policy」>「JSON」。
- 貼上下列政策 JSON,並將 - <region>和- <account-id>替換為您的 AWS 區域和帳戶 ID:- { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops" } ] }- 為政策命名 CWLtoFirehoseWrite,然後按一下「建立政策」。
- 依序前往「IAM」>「角色」>「建立角色」。
- 選取「自訂信任政策」並貼上:
 - { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<your-region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
- 為政策命名 
- 將政策 - CWLtoFirehoseWrite附加至角色。
- 為角色命名 - CWLtoFirehoseRole,然後按一下「建立角色」。
- 依序前往 CloudWatch > Logs > Log groups。 
- 選取目標記錄群組。 
- 開啟「訂閱項目篩選器」分頁,然後按一下「建立」。 
- 選擇「建立 Amazon Kinesis Data Firehose 訂閱篩選器」。 
- 請提供下列設定詳細資料: - 目的地:選取放送串流 cwlogs-to-secops。
- 授予權限:選擇角色 CWLtoFirehoseRole。
- 篩選條件名稱:輸入 all-events。
- 如要傳送所有事件,請將「篩選器模式」留空。
 
- 目的地:選取放送串流 
- 按一下「開始串流播放」。 
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 | 
|---|---|---|
| account | principal.user.userid | 原始記錄中的 account值會對應至principal.user.userid欄位。 | 
| account_id | principal.user.userid | 原始記錄中的 account_id值會對應至principal.user.userid欄位。 | 
| AlertId | metadata.product_log_id | 原始記錄中的 AlertId值會對應至metadata.product_log_id欄位。 | 
| arrivalTimestamp | metadata.event_timestamp | 原始記錄中的 arrivalTimestamp值會轉換為時間戳記,並對應至metadata.event_timestamp欄位。 | 
| attemptsMade | additional.fields | 原始記錄中的 attemptsMade值會轉換為字串,並以鍵/值組合的形式新增至additional.fields,鍵為「嘗試次數」。 | 
| awsAccountId | principal.asset_id | 原始記錄中的 awsAccountId值會加上「AWS 帳戶 ID:」,並對應至principal.asset_id欄位。 | 
| billed_duration | additional.fields | 原始記錄中的 billed_duration值會以鍵/值組合的形式新增至additional.fields,鍵為「billed_duration」。 | 
| BytesIn | network.received_bytes | 原始記錄中的 BytesIn值會轉換為無正負號整數,並對應至network.received_bytes欄位。 | 
| cipher | network.tls.cipher | 原始記錄中的 cipher值會對應至network.tls.cipher欄位。 | 
| Ciphers | network.tls.client.supported_ciphers | 原始記錄中的 Ciphers值會以逗號分隔,並將每個值加入network.tls.client.supported_ciphers陣列。 | 
| cloudwatchLog | security_result.description | 原始記錄中的 cloudwatchLog值會對應至security_result.description欄位。 | 
| CloudAccountId | metadata.product_deployment_id | 原始記錄中的 CloudAccountId值會對應至metadata.product_deployment_id欄位。 | 
| CloudType | target.resource.attribute.cloud.environment | 原始記錄中的 CloudType值會決定target.resource.attribute.cloud.environment的值。如果CloudType為「gcp」,值為「GOOGLE_CLOUD_PLATFORM」。如果CloudType為「aws」,值則為「AMAZON_WEB_SERVICES」。如果CloudType是「azure」,值為「MICROSOFT_AZURE」。 | 
| Context.Execution.Id | target.resource.attribute.labels | 原始記錄中的 Context.Execution.Id值會以鍵/值組合的形式,新增至target.resource.attribute.labels,鍵為「Context Id」。 | 
| Context.Execution.Name | target.resource.attribute.labels | 原始記錄中的 Context.Execution.Name值會以鍵/值組合的形式新增至target.resource.attribute.labels,並以「Context Name」做為鍵。 | 
| Context.Execution.RoleArn | target.resource.product_object_id | 原始記錄中的 Context.Execution.RoleArn值會對應至target.resource.product_object_id欄位。 | 
| descr | metadata.description | 從原始記錄中移除多餘的空白字元後, descr的值會對應至metadata.description欄位,除非該值為「-」。如果descr為空,系統會改用log的值。 | 
| destination.name | target.location.country_or_region | 原始記錄中的 destination.name值會對應至target.location.country_or_region欄位。 | 
| destination.properties.prefix | target.resource.attribute.labels | 原始記錄中的 destination.properties.prefix值會以鍵/值組合的形式,新增至target.resource.attribute.labels,並以「目的地屬性前置字元」做為鍵。 | 
| detail.additionalEventData.configRuleArn | security_result.rule_id | 原始記錄中的 detail.additionalEventData.configRuleArn值會對應至security_result.rule_id欄位。 | 
| detail.additionalEventData.configRuleName | security_result.rule_name | 原始記錄中的 detail.additionalEventData.configRuleName值會對應至security_result.rule_name欄位。 | 
| detail.additionalEventData.managedRuleIdentifier | additional.fields | 原始記錄中的 detail.additionalEventData.managedRuleIdentifier值會以鍵/值組合的形式,新增至additional.fields,並以「managedRuleIdentifier」做為鍵。 | 
| detail.additionalEventData.notificationJobType | additional.fields | 原始記錄中的 detail.additionalEventData.notificationJobType值會以鍵/值組合的形式,新增至additional.fields,並以「notificationJobType」做為鍵。 | 
| detail.awsAccountId | principal.asset_id | 原始記錄中的 detail.awsAccountId值會加上「AWS 帳戶 ID:」,並對應至principal.asset_id欄位。 | 
| detail.awsRegion | principal.location.name | 原始記錄中的 detail.awsRegion值會對應至principal.location.name欄位。 | 
| detail.configRuleArn | security_result.rule_id | 原始記錄中的 detail.configRuleArn值會對應至security_result.rule_id欄位。 | 
| detail.configRuleName | security_result.rule_name | 原始記錄中的 detail.configRuleName值會對應至security_result.rule_name欄位。 | 
| detail.configurationItem.awsAccountId | principal.user.userid | 原始記錄中的 detail.configurationItem.awsAccountId值會對應至principal.user.userid欄位。 | 
| detail.configurationItem.awsRegion | target.location.country_or_region | 原始記錄中的 detail.configurationItem.awsRegion值會對應至target.location.country_or_region欄位。 | 
| detail.configurationItem.configuration.complianceType | security_result.summary | 原始記錄中的 detail.configurationItem.configuration.complianceType值會對應至security_result.summary欄位。 | 
| detail.configurationItem.configuration.targetResourceId | target.resource.attribute.labels | 原始記錄中的 detail.configurationItem.configuration.targetResourceId值會以鍵/值組合的形式,加入target.resource.attribute.labels中,並以「configurationItem configuration targetResourceId」做為鍵。 | 
| detail.configurationItem.configuration.targetResourceType | target.resource.attribute.labels | 原始記錄中的 detail.configurationItem.configuration.targetResourceType值會以鍵/值組合的形式新增至target.resource.attribute.labels,並以「configurationItem configuration targetResourceType」做為鍵。 | 
| detail.configurationItem.configurationItemCaptureTime | _target.asset.attribute.creation_time | 原始記錄中的 detail.configurationItem.configurationItemCaptureTime值會轉換為時間戳記,並對應至_target.asset.attribute.creation_time欄位。 | 
| detail.configurationItem.configurationItemStatus | target.resource.attribute.labels | 原始記錄中的 detail.configurationItem.configurationItemStatus值會以鍵/值組合的形式新增至target.resource.attribute.labels,並以「configurationItem configurationItemStatus」做為鍵。 | 
| detail.configurationItem.configurationStateId | target.resource.attribute.labels | 原始記錄中的 detail.configurationItem.configurationStateId值會轉換為字串,並以鍵/值組合的形式新增至target.resource.attribute.labels,鍵為「configurationItem configurationStateId」。 | 
| detail.configurationItem.resourceId | target.resource.id | 原始記錄中的 detail.configurationItem.resourceId值會對應至target.resource.id欄位。 | 
| detail.configurationItem.resourceType | target.resource.resource_subtype | 原始記錄中的 detail.configurationItem.resourceType值會對應至target.resource.resource_subtype欄位。 | 
| detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn | security_result.rule_id | 原始記錄中的 detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn值會對應至security_result.rule_id欄位。 | 
| detail.eventCategory | security_result.category_details | 原始記錄中的 detail.eventCategory值會對應至security_result.category_details欄位。 | 
| detail.eventID | metadata.product_log_id | 原始記錄中的 detail.eventID值會對應至metadata.product_log_id欄位。 | 
| detail.eventName | additional.fields | 原始記錄中的 detail.eventName值會以鍵/值組合的形式新增至additional.fields,並以「事件名稱」做為鍵。 | 
| detail.eventSource | target.application | 原始記錄中的 detail.eventSource值會對應至target.application欄位。 | 
| detail.eventType | additional.fields | 原始記錄中的 detail.eventType值會以鍵/值組合的形式,加入additional.fields中,並以「Event Type」做為鍵。 | 
| detail.eventVersion | metadata.product_version | 原始記錄中的 detail.eventVersion值會對應至metadata.product_version欄位。 | 
| detail.managementEvent | additional.fields | 原始記錄中的 detail.managementEvent值會轉換為字串,並以鍵/值組合的形式新增至additional.fields,鍵為「detail managementEvent」。 | 
| detail.messageType | target.resource.attribute.labels | 原始記錄中的 detail.messageType值會以鍵/值組合的形式,新增至target.resource.attribute.labels,並以「訊息類型」做為鍵。 | 
| detail.newEvaluationResult.complianceType | security_result.summary | 原始記錄中的 detail.newEvaluationResult.complianceType值會對應至security_result.summary欄位。 | 
| detail.newEvaluationResult.configRuleInvokedTime | additional.fields | 原始記錄中的 detail.newEvaluationResult.configRuleInvokedTime值會以鍵/值組合的形式新增至additional.fields,並以「newEvaluationResult_configRuleInvokedTime」做為鍵。 | 
| detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName | additional.fields | 原始記錄中的 detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName值會以鍵/值組合的形式新增至additional.fields,並以「newEvaluationResult_configRuleName」做為鍵。 | 
| detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId | additional.fields | 原始記錄中的 detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId值會以鍵/值組合的形式,新增至additional.fields,並以「newEvaluationResult_resourceId」做為鍵。 | 
| detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType | additional.fields | 原始記錄中的 detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType值會以鍵/值組合的形式新增至additional.fields,並以「newEvaluationResult_resourceType」做為鍵。 | 
| detail.newEvaluationResult.resultRecordedTime | additional.fields | 原始記錄中的 detail.newEvaluationResult.resultRecordedTime值會以鍵/值組合的形式新增至additional.fields,並以「newEvaluationResult_resultRecordedTime」做為鍵。 | 
| detail.oldEvaluationResult.configRuleInvokedTime | additional.fields | 原始記錄中的 detail.oldEvaluationResult.configRuleInvokedTime值會以鍵/值組合的形式新增至additional.fields,並以「oldEvaluationResult_configRuleInvokedTime」做為鍵。 | 
| detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName | additional.fields | 原始記錄中的 detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName值會以鍵/值組合的形式新增至additional.fields,並以「oldEvaluationResult_configRuleName」做為鍵。 | 
| detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId | additional.fields | 原始記錄中的 detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId值會以鍵/值組合的形式,新增至additional.fields,並以「oldEvaluationResult_resourceId」做為鍵。 | 
| detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType | additional.fields | 原始記錄中的 detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType值會以鍵/值組合的形式新增至additional.fields,並以「oldEvaluationResult_resourceType」做為鍵。 | 
| detail.oldEvaluationResult.resultRecordedTime | additional.fields | 原始記錄中的 detail.oldEvaluationResult.resultRecordedTime值會以鍵/值組合的形式新增至additional.fields,並以「oldEvaluationResult_resultRecordedTime」做為鍵。 | 
| detail.readOnly | additional.fields | 原始記錄中的 detail.readOnly值會轉換為字串,並以鍵/值組合的形式新增至additional.fields,鍵為「detail readOnly」。 | 
| detail.recipientAccountId | target.resource.attribute.labels | 原始記錄中的 detail.recipientAccountId值會以鍵/值組合的形式新增至target.resource.attribute.labels,並以「Recipient Account Id」做為鍵。 | 
| detail.recordVersion | metadata.product_version | 原始記錄中的 detail.recordVersion值會對應至metadata.product_version欄位。 | 
| detail.requestID | target.resource.attribute.labels | 原始記錄中的 detail.requestID值會以鍵/值組合的形式新增至target.resource.attribute.labels,並以「詳細資料要求 ID」做為鍵。 | 
| detail.resourceType | target.resource.resource_subtype | 原始記錄中的 detail.resourceType值會對應至target.resource.resource_subtype欄位。 | 
| detail.s3Bucket | about.resource.name | 原始記錄中的 detail.s3Bucket值會對應至about.resource.name欄位。 | 
| detail.s3ObjectKey | target.resource.attribute.labels | 原始記錄中的 detail.s3ObjectKey值會以鍵/值組合的形式,新增至target.resource.attribute.labels,並以「s3ObjectKey」做為鍵。 | 
| detail.userAgent | network.http.user_agent | 原始記錄中的 detail.userAgent值會對應至network.http.user_agent欄位。 | 
| detail.userIdentity.accessKeyId | target.user.userid | 原始記錄中的 detail.userIdentity.accessKeyId值會對應至target.user.userid欄位。 | 
| detail.userIdentity.accountId | metadata.product_deployment_id | 原始記錄中的 detail.userIdentity.accountId值會對應至metadata.product_deployment_id欄位。 | 
| detail.userIdentity.arn | target.user.userid | 原始記錄中的 detail.userIdentity.arn值會對應至target.user.userid欄位。 | 
| detail.userIdentity.principalId | principal.user.product_object_id | 原始記錄中的 detail.userIdentity.principalId值會對應至principal.user.product_object_id欄位。 | 
| detail.userIdentity.sessionContext.attributes.mfaAuthenticated | principal.user.attribute.labels | 原始記錄中的 detail.userIdentity.sessionContext.attributes.mfaAuthenticated值會以鍵/值組合的形式加入principal.user.attribute.labels,並以「mfaAuthenticated」做為鍵。 | 
| detail.userIdentity.sessionContext.sessionIssuer.userName | target.user.user_display_name | 原始記錄中的 detail.userIdentity.sessionContext.sessionIssuer.userName值會對應至target.user.user_display_name欄位。 | 
| detail.userIdentity.type | principal.resource.type | 原始記錄中的 detail.userIdentity.type值會對應至principal.resource.type欄位。 | 
| detail-type | metadata.product_event_type | 原始記錄中的 detail-type值會對應至metadata.product_event_type欄位。 | 
| device | principal.asset.product_object_id | 原始記錄中的 device值會對應至principal.asset.product_object_id欄位。 | 
| digestPublicKeyFingerprint | target.file.sha1 | 原始記錄中的 digestPublicKeyFingerprint值會對應至target.file.sha1欄位。 | 
| digestS3Bucket | principal.resource.name | 原始記錄中的 digestS3Bucket值會對應至principal.resource.name欄位。 | 
| digestS3Object | principal.asset.asset_id | 原始記錄中的 digestS3Object值會加上「S3 Object: 」前置字串,並對應至principal.asset.asset_id欄位。 | 
| digestSignatureAlgorithm | network.tls.cipher | 原始記錄中的 digestSignatureAlgorithm值會對應至network.tls.cipher欄位。 | 
| digestStartTime | metadata.event_timestamp | 原始記錄中的 digestStartTime值會轉換為時間戳記,並對應至metadata.event_timestamp欄位。 | 
| dimensions.VolumeId | additional.fields | 原始記錄中的 dimensions.VolumeId值會以鍵/值組合的形式新增至additional.fields,並以「VolumeId」做為鍵。 | 
| duration | additional.fields | 原始記錄中的 duration值會以鍵/值組合的形式新增至additional.fields,並以「duration」做為鍵。 | 
| errorCode | security_result.rule_name | 原始記錄中的 errorCode值會對應至security_result.rule_name欄位。 | 
| errorMessage | security_result.summary | 原始記錄中的 errorMessage值會對應至security_result.summary欄位。 | 
| executionId | principal.process.pid | 原始記錄中的 executionId值會對應至principal.process.pid欄位。 | 
| host | principal.hostname、principal.ip | 原始記錄中的 host值 (連字號已替換為點) 會剖析為 IP 位址,並在成功時對應至principal.ip欄位。否則會對應至principal.hostname欄位。 | 
| http_verb | network.http.method | 原始記錄中的 http_verb值會轉換為大寫,並對應至network.http.method欄位。 | 
| kubernetes.container_hash | additional.fields | 原始記錄中的 kubernetes.container_hash值會以鍵/值組合的形式,加入additional.fields中,並以「container_hash」做為鍵。 | 
| kubernetes.container_image | additional.fields | 原始記錄中的 kubernetes.container_image值會以鍵/值組合的形式新增至additional.fields,並以「container_image」做為鍵。 | 
| kubernetes.container_name | additional.fields | 原始記錄中的 kubernetes.container_name值會以鍵/值組合的形式,加入additional.fields中,並以「container_name」做為鍵。 | 
| kubernetes.docker_id | principal.asset_id | 原始記錄中的 kubernetes.docker_id值會加上「id: 」前置字元,並對應至principal.asset_id欄位。 | 
| kubernetes.host | principal.hostname、principal.ip | 原始記錄中的 kubernetes.host值 (連字號已替換為點) 會剖析為 IP 位址,並在成功時對應至principal.ip欄位。否則會對應至principal.hostname欄位。 | 
| kubernetes.namespace | principal.namespace | 原始記錄中的 kubernetes.namespace值會對應至principal.namespace欄位。 | 
| kubernetes.namespace_name | principal.namespace | 原始記錄中的 kubernetes.namespace_name值會對應至principal.namespace欄位。 | 
| kubernetes.pod_id | principal.asset.asset_id | 原始記錄中的 kubernetes.pod_id值會加上「pod_id: 」前置字串,並對應至principal.asset.asset_id欄位。 | 
| kubernetes.pod_name | additional.fields | 原始記錄中的 kubernetes.pod_name值會以鍵/值組合的形式新增至additional.fields,並以「Pod 名稱」做為鍵。 | 
| lambdaArn | principal.hostname | 原始記錄中的 lambdaArn值會對應至principal.hostname欄位。 | 
| level | security_result.severity | 原始記錄中的 level值會決定security_result.severity的值。如果level是「Info」,值就是「INFORMATIONAL」。如果level為「Error」,則值為「ERROR」。如果level為「Warning」,則值為「MEDIUM」。 | 
| log | metadata.description | 如果 descr為空,則原始記錄中的log值會對應至metadata.description欄位。 | 
| logFiles | about | 針對原始記錄中 logFiles陣列的每個元素,系統會建立about物件,並將file.full_path設為s3Object、asset.hostname設為s3Bucket,以及file.sha256設為hashValue。 | 
| log_processed.cause | security_result.summary | 原始記錄中的 log_processed.cause值會對應至security_result.summary欄位。 | 
| log_processed.ids | intermediary.hostname | 針對原始記錄中的 log_processed.ids陣列中的每個元素,系統會建立intermediary物件,並將hostname設為元素的值。 | 
| log_processed.level | security_result.severity | 原始記錄中的 log_processed.level值會對應至security_result.severity欄位。 | 
| log_processed.msg | metadata.description | 原始記錄中的 log_processed.msg值會對應至metadata.description欄位。 | 
| log_processed.ts | metadata.event_timestamp | 原始記錄中的 log_processed.ts值會轉換為時間戳記,並對應至metadata.event_timestamp欄位。 | 
| log_type | metadata.log_type | 原始記錄中的 log_type值會對應至metadata.log_type欄位。這是為提供背景資訊而新增的自訂欄位。 | 
| logevent.message | security_result.description | 原始記錄中的 logevent.message值會對應至security_result.description欄位。系統也會使用 grok 剖析這項資料,以擷取其他欄位。 | 
| logGroup | security_result.about.resource.name | 原始記錄中的 logGroup值會對應至security_result.about.resource.name欄位。 | 
| logStream | security_result.about.resource.attribute.labels | 原始記錄中的 logStream值會以鍵/值組合的形式,新增至security_result.about.resource.attribute.labels,並以「logStream」做為鍵。 | 
| memory_used | additional.fields | 原始記錄中的 memory_used值會以鍵/值組合的形式加入additional.fields,並以「memory_used」做為鍵。 | 
| metric_name | additional.fields | 原始記錄中的 metric_name值會以鍵/值組合的形式加入additional.fields,並以「metric_name」做為鍵。 | 
| metric_stream_name | additional.fields | 原始記錄中的 metric_stream_name值會以鍵/值組合的形式,加入additional.fields中,並以「metric_stream_name」做為鍵。 | 
| namespace | principal.namespace | 原始記錄中的 namespace值會對應至principal.namespace欄位。 | 
| owner | principal.user.userid | 原始記錄中的 owner值會對應至principal.user.userid欄位。 | 
| parameters | additional.fields | 原始記錄中的 parameters值會以鍵/值組合的形式,加入additional.fields中,並以「Parameters」做為鍵。 | 
| Path | principal.process.file.full_path | 原始記錄中的 Path值會對應至principal.process.file.full_path欄位。 | 
| pid | principal.process.pid | 原始記錄中的 pid值會對應至principal.process.pid欄位。 | 
| PolicyName | security_result.rule_name | 原始記錄中的 PolicyName值會對應至security_result.rule_name欄位。 | 
| prin_host | principal.hostname | 原始記錄中的 prin_host值會對應至principal.hostname欄位。 | 
| principal_hostname | principal.hostname | 原始記錄中的 principal_hostname值會對應至principal.hostname欄位。 | 
| process | principal.application | 原始記錄中的 process值會對應至principal.application欄位。 | 
| rawData | additional.fields | 原始記錄中的 rawData值會以鍵/值組合的形式新增至additional.fields,並以「原始資料」做為鍵。 | 
| Recommendation | security_result.detection_fields | 原始記錄中的 Recommendation值會以鍵/值組合的形式,加入security_result.detection_fields中,並以「Recommendation」做為鍵。 | 
| referral_url | network.http.referral_url | 原始記錄中的 referral_url值會對應至network.http.referral_url欄位。 | 
| region | principal.location.name | 原始記錄中的 region值會對應至principal.location.name欄位。 | 
| resp_code | network.http.response_code | 原始記錄中的 resp_code值會轉換為整數,並對應至network.http.response_code欄位。 | 
| resource_url | network.http.referral_url | 原始記錄中的 resource_url值會對應至network.http.referral_url欄位。 | 
| ResourceType | target.resource.resource_subtype | 原始記錄中的 ResourceType值會對應至target.resource.resource_subtype欄位。 | 
| response_body | additional.fields | 原始記錄中的 response_body值會以鍵/值組合的形式,新增至additional.fields,並以「回應內文」做為鍵。 | 
| Role | target.resource.product_object_id | 原始記錄中的 Role值會對應至target.resource.product_object_id欄位。 | 
| s3_bucket_path | target.file.full_path | 原始記錄中的 s3_bucket_path值會對應至target.file.full_path欄位。 | 
| sec_result.category | security_result.category | sec_result.category的值衍生自剖析器邏輯。如果descr包含「authentication is required」,則值為「AUTH_VIOLATION」。 | 
| sec_result.description | security_result.description | sec_result.description的值衍生自剖析器邏輯。如果存在,則會設為cloudwatchLog的值。 | 
| sec_result.severity | security_result.severity | sec_result.severity的值衍生自剖析器邏輯。系統會根據severity或level的值設定這項屬性。 | 
| sec_result.summary | security_result.summary | sec_result.summary的值衍生自剖析器邏輯。如果存在,則會設為log_processed.cause或errorMessage的值。 | 
| security_result | security_result | security_result物件是由各種欄位和剖析器邏輯建構而成。 | 
| serverId | additional.fields | 原始記錄中的 serverId值會以鍵/值組合的形式新增至additional.fields,並以「server_id」做為鍵。 | 
| severity | security_result.severity | 原始記錄中的 severity值會轉換為大寫並經過正規化處理,然後對應至security_result.severity欄位。 | 
| Source | principal.hostname | 原始記錄中的 Source值會對應至principal.hostname欄位。 | 
| source | principal.hostname | 原始記錄中的 source值會對應至principal.hostname欄位。 | 
| SourceIP | principal.ip | 原始記錄中的 SourceIP值會對應至principal.ip欄位。 | 
| src_port | principal.port | 如果 src_port為「80」,系統會將其轉換為整數並對應至principal.port欄位,且network.application_protocol會設為「HTTP」。 | 
| stream | additional.fields | 原始記錄中的 stream值會以鍵/值組合的形式,新增至additional.fields,並以「stream」做為鍵。 | 
| subscriptionFilters | security_result.about.resource.attribute.labels | 針對原始記錄中的 subscriptionFilters陣列,系統會將鍵/值組合新增至security_result.about.resource.attribute.labels,並將鍵設為「subscriptionFilter」,值則設為陣列中的值。 | 
| support_contact | target.resource.attribute.labels | 原始記錄中的 support_contact值會以鍵/值組合的形式新增至target.resource.attribute.labels,並以「Support Contact」做為鍵。 | 
| t_ip | target.ip | 從原始記錄中移除連字號後,系統會將 t_ip的值剖析為 IP 位址,並在成功時對應至target.ip欄位。 | 
| time | metadata.event_timestamp | 原始記錄中的 time值會轉換為時間戳記,並對應至metadata.event_timestamp欄位。 | 
| timestamp | metadata.event_timestamp | 原始記錄中的 timestamp值會轉換為各種格式的時間戳記,並對應至metadata.event_timestamp欄位。 | 
| tls | network.tls.version | 原始記錄中的 tls值會對應至network.tls.version欄位。 | 
| transferDetails.serverId | additional.fields | 原始記錄中的 transferDetails.serverId值會以鍵/值組合的形式新增至additional.fields,並以「server_id」做為鍵。 | 
| transferDetails.sessionId | network.session_id | 原始記錄中的 transferDetails.sessionId值會對應至network.session_id欄位。 | 
| transferDetails.username | principal.user.user_display_name | 原始記錄中的 transferDetails.username值會對應至principal.user.user_display_name欄位。 | 
| ts | metadata.event_timestamp | 系統會將原始記錄中的 ts值 (如有時區) 轉換為時間戳記,並對應至metadata.event_timestamp欄位。 | 
| type | metadata.product_event_type | 原始記錄中的 type值會對應至metadata.product_event_type欄位。 | 
| unit | additional.fields | 原始記錄中的 unit值會以鍵/值組合的形式,新增至additional.fields,並以「unit」做為鍵。 | 
| url | target.url | 原始記錄中的 url值會對應至target.url欄位。 | 
| url_back_to_product | metadata.url_back_to_product | 原始記錄中的 url_back_to_product值會對應至metadata.url_back_to_product欄位。 | 
| User | principal.user.userid | 原始記錄中的 User值會對應至principal.user.userid欄位。 | 
| user | target.user.userid、metadata.event_type、extensions.auth.mechanism | 如果存在 user,metadata.event_type會設為「USER_LOGIN」,extensions.auth.mechanism會設為「NETWORK」,且user的值會對應至target.user.userid。 | 
| value.count | additional.fields | 原始記錄中的 value.count值會轉換為字串,並以鍵/值組合的形式加入additional.fields,鍵為「count」。 | 
| value.max | additional.fields | 原始記錄中的 value.max值會轉換為字串,並以鍵/值組合的形式加入additional.fields,鍵為「max」。 | 
| value.min | additional.fields | 原始記錄中的 value.min值會轉換為字串,並以鍵/值組合的形式加入additional.fields,鍵為「min」。 | 
| value.sum | additional.fields | 原始記錄中的 value.sum值會轉換為字串,並以鍵/值組合的形式加入additional.fields,鍵為「sum」。 | 
| workflowId | additional.fields | 原始記錄中的 workflowId值會以鍵/值組合的形式新增至additional.fields,並以「workflowId」做為鍵。 | 
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。