收集 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 日志创建的存储桶。
- 打开 Amazon S3 控制台。
- 如有需要,您可以更改地区。- 在导航栏中,选择 CloudWatch Logs 所在的区域。
 
- 点击创建存储分区。
- 存储桶名称:为存储桶输入一个有意义的名称。
- 区域:选择 CloudWatch Logs 数据所在的区域。
- 点击创建。
 
创建对 Amazon S3 和 CloudWatch Logs 具有完全访问权限的 IAM 用户
- 打开 IAM 控制台。
- 依次点击用户 > 创建用户。
- 在用户名字段中输入一个名称(例如 CWExport)。
- 同时选择以程序化方式访问和 AWS 管理控制台访问。
- 选择自动生成的密码或自定义密码。
- 点击 Next: Permissions。
- 选择 Attach existing policies directly。
- 搜索并选择要向用户授予的 AmazonS3FullAccess 和 CloudWatchLogsFullAccess 政策。
- 点击 Next: Tags。
- 点击下一步:检查。
- 点击创建用户。
配置 Amazon S3 存储桶的权限
- 在 Amazon S3 控制台中,选择您之前创建的存储桶。
- 依次点击权限 > 存储分区政策。
- 在存储分区政策编辑器中,添加以下政策。 - { "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更改为随机生成的字符串。
- 请务必为 Principal 指定正确的区域端点。
 
- 将 
- 点击保存。 
配置 CloudWatch 导出
- 以您之前创建的 IAM 用户的身份登录。
- 打开 CloudWatch 控制台。
- 在导航菜单中,选择日志组。
- 选择现有日志组的名称,或创建一个新的日志组。
- 依次选择操作 > 将数据导出到 Amazon S3。
- 在将数据导出到 Amazon S3 界面上,找到定义数据导出。
- 使用开始时间和结束时间设置要导出的数据的时间范围。 
- 选择 S3 存储桶:选择与 Amazon S3 存储桶关联的账号。 
- S3 存储桶名称:选择一个 Amazon S3 存储桶。 
- S3 存储桶前缀:输入您在存储桶政策中指定的随机生成的字符串。 
- 选择导出,将日志数据导出到 Amazon S3。 
- 如需查看导出到 Amazon S3 的日志数据的状态,请依次选择操作 > 查看所有导出到 Amazon S3 的数据。 
在 Google SecOps 中配置 Feed 以注入 AWS CloudWatch 日志
- 依次前往 SIEM 设置> Feed。
- 点击添加新 Feed。
- 在Feed 名称字段中,输入 Feed 的名称(例如 AWS CloudWatch Logs)。
- 选择 Amazon S3 V2 作为来源类型。
- 选择 AWS CloudWatch 作为日志类型。
- 点击下一步。
- 为以下输入参数指定值: - S3 URI:存储桶 URI
- s3://your-log-bucket-name/- 将 your-log-bucket-name替换为存储桶的实际名称。
 
- 将 
- 来源删除选项:根据您的偏好设置选择删除选项。 
- 文件最长保留时间:默认值为 180 天。 
- 访问密钥 ID:有权访问 S3 存储桶的用户访问密钥。 
- 私有访问密钥:具有 S3 存储桶访问权限的用户私有密钥。 
- 资产命名空间:资产命名空间。 
- 注入标签:要应用于此 Feed 中事件的标签。 
 
- 点击下一步。 
- 在最终确定界面中查看新的 Feed 配置,然后点击提交。 
使用 AWS Data Firehose 配置 CloudWatch 日志导出
初始设置后,无需定期执行此导出流程。
在 Google SecOps 中配置 Feed 以注入 AWS CloudWatch 日志
- 依次前往 SIEM 设置> Feed。
- 点击 + 添加新 Feed。
- 在Feed 名称字段中,输入 Feed 的名称(例如 AWS CloudWatch Logs)。
- 选择 Amazon Data Firehose 作为来源类型。
- 选择 AWS CloudWatch 作为日志类型。
- 点击下一步。
- 为以下输入参数指定值:
- 拆分分隔符:可选 \n。
- 资产命名空间:资产命名空间。
- 注入标签:要应用于此 Feed 中事件的标签。
 
- 拆分分隔符:可选 
- 点击下一步。
- 检查 Feed 配置,然后点击提交。
- 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。
- 复制并保存此密钥,因为您无法再次查看此值。
- 前往详细信息标签页。
- 从端点信息字段复制 Feed 端点网址。
- 点击完成。
为 Amazon Data Firehose Feed 创建 API 密钥
- 前往 Google Cloud 控制台的“凭据”页面。
- 点击创建凭据,然后选择 API 密钥。
- 将 API 密钥的访问权限限制为 Google SecOps API。
指定端点网址
如需在 Amazon Data Firehose 中指定 HTTPS 端点和访问密钥,请按以下步骤操作:
- 将 API 密钥附加到 Feed 端点网址,并按以下格式指定此网址作为 HTTP 端点网址: - ENDPOINT_URL?key=API_KEY- 替换以下内容: - ENDPOINT_URL:Feed 端点网址。
- API_KEY:用于向 Google SecOps 进行身份验证的 API 密钥。
 
 
对于访问密钥,请指定您在创建 Amazon Data Firehose Feed 时获得的私有密钥。
将 Amazon Kinesis Data Firehose 配置为 Google SecOps {:#configure-kinesis-secops}。
- 在 AWS 控制台中,依次前往 Kinesis > Data Firehose > 创建交付流。
- 提供以下配置详细信息:
- 来源:选择直接 PUT 或其他来源。
- 目的地:选择 HTTP 端点。
- HTTP 端点网址:输入 Google SecOps 提供的包含 API 密钥的 Feed HTTPS 端点网址。
- HTTP 方法:选择 POST。
 
- 在访问密钥下,输入以下详细信息:
- 密钥标头:<HEADER_NAME_FOR_SECRET>,值为<YOUR_SECRET_KEY>
- 缓冲提示:将缓冲大小设置为 1 MiB,将缓冲间隔设置为 60 秒。
- 压缩:选择已停用。
- S3 备份:选择已停用。
- 将重试和日志记录设置保留为默认。
 
- 密钥标头:
- 点击创建交付数据流。
配置 IAM 权限并订阅日志组
- 在 AWS 控制台中,依次前往 IAM > 政策 > 创建政策 > 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 > 角色 > 创建角色。
- 选择 Custom trust policy(自定义信任政策),然后粘贴:
 - { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<your-region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
- 为政策命名 
- 将政策 - CWLtoFirehoseWrite附加到角色。
- 将角色命名为 - CWLtoFirehoseRole,然后点击创建角色。
- 依次前往 CloudWatch > 日志 > 日志组。 
- 选择目标日志组。 
- 打开订阅过滤条件标签页,然后点击创建。 
- 选择创建 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中,键为“Attempts Made”。 | 
| 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中,键为“Event Name”。 | 
| 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中,键为“Detail Request 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 对象:”前缀,并映射到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 name”。 | 
| 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中,键为“Response body”。 | 
| 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包含“需要身份验证”,则值为“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中,键为“支持联系人”。 | 
| 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 专业人士那里获得解答。