收集 Amazon CloudFront 日志

支持的平台:

本文档介绍了如何通过设置 Google 安全运营 Feed 来收集 Amazon CloudFront 日志。

如需了解详情,请参阅将数据提取到 Google 安全运营中心概览

提取标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 AWS_CLOUDFRONT 注入标签的解析器。

准备工作

确保已创建 Amazon S3 存储分区。如需了解详情,请参阅创建您的第一个 S3 存储分区

配置 Amazon CloudFront

  1. 登录 AWS 管理控制台。
  2. 访问 Amazon S3 控制台,然后创建 Amazon S3 存储分区。
  3. 如需启用日志记录,请选择开启
  4. 用于存储日志的存储分区字段中,指定 Amazon S3 存储分区名称。
  5. 日志前缀字段中,指定可选的前缀。
  6. 将日志文件存储在 Amazon S3 存储分区中后,创建一个 SQS 队列并将其附加到 Amazon S3 存储分区。

确定连接端点

检查 S3、SQS 和 KMS 的必需 IAM 用户和 KMS 密钥政策。

根据服务和区域,参阅以下 AWS 文档,确定连接端点:

在 Google Security Operations 中配置 Feed 以提取 Amazon CloudFront 日志

  1. 依次选择 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称输入一个具有唯一性的名称。
  4. 选择 Amazon S3Amazon SQS 作为来源类型
  5. 选择 AWS CloudFront 作为日志类型
  6. 点击下一步
  7. Google 安全运营支持使用访问密钥 ID 和密钥方法收集日志。如需创建访问密钥 ID 和密钥,请参阅使用 AWS 配置工具身份验证
  8. 根据您创建的 Amazon CloudFront 配置,为以下字段指定值。
    • 如果您使用 Amazon S3,请为以下字段指定值:
      • 区域
      • S3 URI
      • URI 是
      • 来源删除选项
    • 如果您使用 Amazon SQS,请为以下字段指定值:
      • 区域
      • 队列名称
      • 账号
      • 队列访问密钥 ID
      • 队列私有访问密钥
      • 来源删除选项
  9. 点击下一步,然后点击提交

如需将 Amazon CloudFront 日志发送到 Amazon S3 存储分区,请参阅配置和使用标准日志(访问日志)

如需详细了解 Google Security Operations Feed,请参阅 Google Security Operations Feed 文档。如需了解每种 Feed 类型的要求,请参阅按类型配置 Feed。如果您在创建 Feed 时遇到问题,请与 Google 安全运营支持团队联系。

字段映射参考文档

此解析器会从 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.hostnameprincipal.asset.hostname 直接映射。
id principal.asset_id 直接使用前缀“id:”进行映射。
ip target.iptarget.asset.ip 直接映射。
log_id metadata.product_log_id 直接映射。
resource additional.fields[].key:“resource”
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.iptarget.asset.ip 直接映射。如果存在多个 IP(以英文逗号分隔),系统会将其拆分并合并到相应的 UDM 字段中。
x-host-header target.hostnametarget.asset.hostname 直接映射。如果存在 ipx-forwarded-forhttp_verb,则设置为“NETWORK_HTTP”。否则,请设置为“GENERIC_EVENT”。已硬编码为“AWS_CLOUDFRONT”。已硬编码为“AWS CloudFront”。已硬编码为“AMAZON”。日志条目被注入 Google Security Operations 的时间。

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。