收集 Amazon CloudFront 日志

支持的语言:

本文档介绍了如何通过设置 Google Security Operations Feed 来收集 Amazon CloudFront 日志。

如需了解详情,请参阅 Google Security Operations 数据注入概览

注入标签用于标识将原始日志数据标准化为结构化 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 所需的 Identity and Access Management 用户和 KMS 密钥政策。

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

设置 Feed

您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:

  • SIEM 设置 > Feed
  • 内容中心 > 内容包

通过“SIEM 设置”>“Feed”设置 Feed

如需为相应产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed

如需配置单个 Feed,请按以下步骤操作:

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

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

设置来自内容中心的 Feed

您可以使用 Amazon SQS(首选)或 Amazon S3 在 Google SecOps 中配置提取 Feed。

为以下字段指定值:

  • 区域:S3 存储桶或 SQS 队列托管的区域。
  • 队列名称:要从中读取日志数据的 SQS 队列的名称。
  • 账号:拥有 SQS 队列的账号。
  • 队列访问密钥 ID:20 字符的账号访问密钥 ID。例如 AKIAOSFOODNN7EXAMPLE
  • 队列私有访问密钥:40 字符的私有访问密钥。例如 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  • 源删除选项:用于在转移数据后删除文件和目录的选项。

高级选项

  • Feed 名称:用于标识 Feed 的预填充值。
  • 来源类型:用于将日志收集到 Google SecOps 中的方法。
  • 资产命名空间与 Feed 关联的命名空间
  • 提取标签:应用于相应 Feed 中所有事件的标签。

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

字段映射参考

此解析器可从 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:“资源”
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(以英文逗号分隔),则这些 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 专业人士那里获得解答。