收集 Amazon CloudFront 日志
本文档介绍了如何通过设置 Google Security Operations Feed 来收集 Amazon CloudFront 日志。
如需了解详情,请参阅 Google Security Operations 数据注入概览。
注入标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 AWS_CLOUDFRONT 注入标签的解析器。
准备工作
确保已创建 Amazon S3 存储桶。如需了解详情,请参阅创建您的第一个 S3 存储桶。
配置 Amazon CloudFront
- 登录 AWS 管理控制台。
 - 访问 Amazon S3 控制台,然后创建 Amazon S3 存储桶。
 - 点击开启以启用日志记录。
 - 在日志存储桶字段中,指定 Amazon S3 存储桶名称。
 - 在日志前缀字段中,指定一个可选前缀。
 - 将日志文件存储在 Amazon S3 存储桶中后,创建一个 SQS 队列,并将其附加到 Amazon S3 存储桶。
 
确定连接的端点
检查 S3、SQS 和 KMS 所需的 Identity and Access Management 用户和 KMS 密钥政策。
根据服务和区域,参考以下 AWS 文档确定连接端点:
- 如需了解任何日志记录来源,请参阅 AWS Identity and Access Management 端点和配额。
 - 如需了解 S3 日志记录来源,请参阅 Amazon Simple Storage Service 端点和配额。
 - 如需了解 SQS 日志记录来源,请参阅 Amazon Simple Queue Service 端点和配额。
 
设置 Feed
您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed > 添加新 Feed
 - 内容中心 > 内容包 > 开始
 
如何设置 AWS CloudFront Feed
- 点击 Amazon Cloud Platform 包。
 - 找到 AWS CloudFront 日志类型。
 在以下字段中指定值。
- 来源类型:Amazon SQS V2
 - 队列名称:要从中读取数据的 SQS 队列名称
 - S3 URI:存储桶 URI。
s3://your-log-bucket-name/- 将 
your-log-bucket-name替换为您的 S3 存储桶的实际名称。 
- 将 
 
 源删除选项:根据您的提取偏好设置选择删除选项。
文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。
SQS 队列访问密钥 ID:一个包含 20 个字符的字母数字字符串形式的账号访问密钥。
SQS 队列私有访问密钥:一个包含 40 个字符的字母数字字符串形式的账号访问密钥。
高级选项
- Feed 名称:用于标识 Feed 的预填充值。
 - 资源命名空间:与 Feed 关联的命名空间。
 - 提取标签:应用于相应 Feed 中所有事件的标签。
 
点击创建 Feed。
如需详细了解如何为相应产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed。
字段映射参考
此解析器可从 SYSLOG 或 JSON 格式的 AWS CloudFront 日志中提取字段,并将其标准化为 UDM。它使用 grok 模式解析消息字符串,处理各种数据转换(例如类型转换、重命名),并通过用户代理解析和应用协议识别等方式来丰富数据。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 | 
|---|---|---|
c-ip | 
principal.ip | 
直接映射。还映射到 principal.asset.ip。 | 
c-port | 
principal.port | 
直接映射。 | 
cs(Cookie) | 
additional.fields[].key:“cookie”additional.fields[].value.string_value:直接映射。 | 
如果存在 cs(Cookie) 且 agent 不包含“://”,则有条件地进行映射。 | 
cs(Host) | 
principal.hostname | 
直接映射。还映射到 principal.asset.hostname。用于在其他网址字段不可用时构建 target.url。 | 
cs(Referer) | 
network.http.referral_url | 
直接映射。 | 
cs(User-Agent) | 
network.http.user_agent | 
直接映射。如果网址不包含“://”,则还会映射到 network.http.parsed_user_agent 并解析为各个组成部分。 | 
cs-bytes | 
network.sent_bytes | 
直接映射。转换为无符号整数。 | 
cs-method | 
network.http.method | 
直接映射。 | 
cs-protocol | 
network.application_protocol | 
转换为大写后映射。如果该值未被识别为标准应用协议,且 cs-protocol-version 包含“HTTP”,则 network.application_protocol 会设置为“HTTP”。 | 
dport | 
target.port | 
直接映射。已转换为整数。 | 
edge_location | 
principal.location.name | 
直接映射。 | 
fle-encrypted-fields | 
additional.fields[].key: "fle-encrypted-fields"additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
fle-status | 
additional.fields[].key:“fle-status”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
host | 
principal.hostname,principal.asset.hostname | 
直接映射。 | 
id | 
principal.asset_id | 
直接映射到前缀“id:”。 | 
ip | 
target.ip,target.asset.ip | 
直接映射。 | 
log_id | 
metadata.product_log_id | 
直接映射。 | 
resource | 
additional.fields[].key:“资源”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
result_type | 
additional.fields[].key:“result_type”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
sc-bytes | 
network.received_bytes | 
直接映射。转换为无符号整数。 | 
sc-content-len | 
additional.fields[].key:“sc-content-len”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
sc-content-type | 
additional.fields[].key:“sc-content-type”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
sc-status | 
network.http.response_code | 
直接映射。已转换为整数。 | 
ssl-cipher | 
network.tls.cipher | 
直接映射。 | 
ssl-protocol | 
network.tls.version | 
直接映射。 | 
timestamp | 
metadata.event_timestamp | 
如果可用,则进行解析和映射。支持不同的格式。 | 
ts | 
metadata.event_timestamp | 
如果可用,则进行解析和映射。应采用 ISO8601 格式。 | 
url | 
target.url | 
直接映射。 | 
url_back_to_product | 
metadata.url_back_to_product | 
直接映射。 | 
x-edge-detailed-result-type | 
additional.fields[].key:“x-edge-detailed-result-type”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
x-edge-location | 
additional.fields[].key:“x-edge-location”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
x-edge-request-id | 
additional.fields[].key:“x-edge-request-id”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
x-edge-response-result-type | 
additional.fields[].key:“x-edge-response-result-type”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
x-edge-result-type | 
additional.fields[].key:“x-edge-result-type”additional.fields[].value.string_value:直接映射。 | 
如果存在,则有条件地映射。 | 
x-forwarded-for | 
target.ip,target.asset.ip | 
直接映射。如果存在多个 IP(以英文逗号分隔),则这些 IP 会被拆分并合并到相应的 UDM 字段中。 | 
x-host-header | 
target.hostname,target.asset.hostname | 
直接映射。如果存在 ip 或 x-forwarded-for 和 http_verb,则设置为“NETWORK_HTTP”。否则,设置为“GENERIC_EVENT”。硬编码为“AWS_CLOUDFRONT”。硬编码为“AWS CloudFront”。硬编码为“AMAZON”。日志条目注入到 Google Security Operations 的时间。 | 
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。