收集 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 > 添加新 Feed
  • 内容中心 > 内容包 > 开始

如何设置 AWS CloudFront Feed

  1. 点击 Amazon Cloud Platform 包。
  2. 找到 AWS CloudFront 日志类型。
  3. 在以下字段中指定值。

    • 来源类型: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 中所有事件的标签。
  4. 点击创建 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.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 专业人士那里获得解答。