收集 AWS VPC 流日志

支持的平台:

本文档介绍了如何使用 Google Security Operations 转发器收集 AWS VPC 流日志。

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

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

准备工作

配置 AWS VPC 流

根据您是将日志转发到 Amazon S3 还是 Amazon CloudWatch 来配置 AWS VPC Flow。

配置流日志以将日志转发到 Amazon S3

创建并配置 Amazon S3 存储桶后,您可以为网络接口、子网和 VPC 网络创建流日志。

为网络接口创建流量日志

  1. 登录 Amazon EC2 控制台。
  2. 在导航窗格中,选择网络接口
  3. 选择一个或多个网络接口。
  4. 依次选择操作 > 创建数据流日志
  5. 配置流日志设置。如需了解详情,请参阅本文档的配置数据流日志设置部分。

为子网创建流日志

  1. 登录 Amazon VPC 控制台。
  2. 在导航窗格中,选择子网
  3. 选择一个或多个子网。
  4. 依次选择操作 > 创建数据流日志
  5. 配置流日志设置。如需了解详情,请参阅本文档的配置数据流日志设置部分。

为 VPC 创建流日志

  1. 登录 Amazon VPC 控制台。
  2. 在导航窗格中,选择 VPC
  3. 选择一个或多个 VPC。
  4. 依次选择操作 > 创建数据流日志
  5. 配置流日志设置。如需了解详情,请参阅本文档的配置数据流日志设置部分。

配置流日志设置

  1. 过滤条件部分中,指定要记录的 IP 流量:

    • 接受:仅记录已接受的流量。

    • 拒绝:仅记录被拒绝的流量。

    • 全部:记录已接受和已拒绝的流量。

  2. 最大汇总间隔部分,选择 1 分钟

  3. 目标位置部分,选择发送到 Amazon S3 存储桶

  4. S3 存储桶 ARN 部分,指定 Amazon S3 存储桶的 ARN。

  5. 日志记录格式部分中,为流日志记录指定以下格式:

    1. 如需使用默认的流日志记录格式,请选择 AWS 默认格式
    2. 如需创建自定义格式,请选择自定义格式
  6. 使用自定义 AWS 日志格式配置 VPC 日志流,以使用 MSS 真实 IP 功能。

  7. 日志格式列表中,选择所有属性。

  8. 格式预览部分,查看自定义格式。

  9. 日志文件格式部分,选择文本(默认)

  10. Hive 兼容的 S3 前缀部分中,请勿选中 Enable(启用)复选框。

  11. 按时间分区日志部分,选择每 1 小时(60 分钟)

  12. 如需向流日志添加标记,请选择添加新标记,然后指定标记键和值。

  13. 选择创建数据流日志。如需了解详情,请参阅将流日志发布到 Amazon S3

将流日志配置到 Amazon CloudWatch

您可以通过 VPC、子网或网络接口配置流日志。

  1. 过滤条件部分中,指定要记录的 IP 流量类型:

    • 接受:仅记录已接受的流量。

    • 拒绝:仅记录被拒绝的流量。

    • 全部:记录已接受和已拒绝的流量。

  2. 最大汇总间隔部分,选择 1 分钟

  3. 目标位置部分,选择发送到 CloudWatch 日志

  4. 目标日志组部分,提供您创建的目标日志组名称。

  5. IAM 角色列表中,选择角色名称。所选角色名称具有将日志发布到 CloudWatch 日志的权限。

    IAM 角色必须包含以下权限:

       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "logs:CreateLogGroup",
               "logs:CreateLogStream",
               "logs:PutLogEvents",
               "logs:DescribeLogGroups",
               "logs:DescribeLogStreams"
           ],
           "Resource": "*"
         }
        ]
       }
    
  6. 日志记录格式部分,为流日志记录选择自定义格式

  7. 如需向流量日志添加标记,请选择添加新标记,然后指定标记键和值。

  8. 选择创建数据流日志。如需了解详情,请参阅将流日志发布到 Amazon S3

Amazon S3 可配置为将事件通知发送到 Amazon SQS。如需了解详情,请参阅配置用于接收通知的存储桶(SNS 主题或 SQS 队列)

如果您使用 Amazon SQS(Amazon S3 使用 Amazon SQS)作为日志收集方法,则必须为 Amazon S3 和 Amazon SQS 创建 IAM 用户政策。如需了解详情,请参阅将 IAM 政策与 AWS KMS 搭配使用

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

配置 Google 安全运维转发器和 syslog 以注入 AWS VPC 流日志

  1. 依次选择 SIEM 设置 > 转发器
  2. 点击添加新转发器
  3. 转发器名称输入一个唯一的名称。
  4. 点击提交,然后点击确认。系统会添加转发器,并显示添加收集器配置窗口。
  5. 收集器名称字段中,输入名称。
  6. Log type 字段中,选择 AWS VPC Flow
  7. 收集器类型字段中,选择 Syslog
  8. 配置以下必需的输入参数:
    • 协议:指定收集器将用于监听 syslog 数据的连接协议。
    • 地址:指定收集器所在的目标 IP 地址或主机名,以及 syslog 数据的地址。
    • 端口:指定收集器所在的目标端口,以及收集器监听 syslog 数据的端口。
  9. 点击提交,然后点击确认

如需详细了解 Google Security Operations 转发器,请参阅 Google Security Operations 转发器文档。如需了解每种转发器类型的要求,请参阅按类型配置转发器

如果您在创建转发器时遇到问题,请与 Google 安全运营支持团队联系

字段映射参考文档

此解析器代码会获取描述 EC2 VPC 事件的 JSON 格式的原始 AWS CloudTrail 日志,并将其转换为结构化 UDM 格式。它会提取相关字段,将其重命名以与 UDM 架构相匹配,并使用资源类型、云环境和标签等其他上下文丰富数据,以便更轻松地进行分析。

AWS EC2 VPC 解析器的 UDM 映射表

日志字段(升序) UDM 映射 逻辑
CidrBlock event.idm.entity.entity.resource.attribute.labels.cidr_block 直接从原始日志中的“CidrBlock”字段映射而来。
CidrBlock event.idm.entity.entity.network.ip_subnet_range 直接从原始日志中的“CidrBlock”字段映射而来。
CidrBlockAssociation.AssociationID event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id 直接从原始日志中的“CidrBlockAssociation”数组内的“AssociationID”字段映射而来。
CidrBlockAssociation.CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state 直接从原始日志中“CidrBlockAssociation”数组的“CidrBlockState”对象中的“State”字段映射而来。
CidrBlockAssociation.CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message 直接从原始日志中“CidrBlockAssociation”数组的“CidrBlockState”对象中的“StatusMessage”字段映射而来。
DhcpOptionsID event.idm.entity.entity.resource.attribute.labels.dhcp_options_id 直接从原始日志中的“DhcpOptionsID”字段映射。
ID event.idm.entity.entity.resource.product_object_id 直接从原始日志中的“ID”字段(在解析器中重命名为“VpcID”)映射而来。
ID event.idm.entity.metadata.product_entity_id 直接从原始日志中的“ID”字段(在解析器中重命名为“VpcID”)映射而来。
InstanceTenancy event.idm.entity.entity.resource.attribute.labels.instance_tenancy 直接从原始日志中的“InstanceTenancy”字段映射而来。
IsDefault event.idm.entity.entity.resource.attribute.labels.is_default 直接从原始日志中的“IsDefault”字段映射而来。
Ipv6CidrBlockAssociationSet.AssociationID event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id 直接从原始日志中的“Ipv6CidrBlockAssociationSet”数组内的“AssociationID”字段映射而来。
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block 直接从原始日志中的“Ipv6CidrBlockAssociationSet”数组内的“Ipv6CidrBlock”字段映射而来。
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state 直接从原始日志中“Ipv6CidrBlockAssociationSet”数组的“Ipv6CidrBlockState”对象中的“State”字段映射而来。
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message 直接从原始日志中“Ipv6CidrBlockAssociationSet”数组的“Ipv6CidrBlockState”对象中的“StatusMessage”字段映射而来。
Ipv6CidrBlockAssociationSet.Ipv6Pool event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool 直接从原始日志中的“Ipv6CidrBlockAssociationSet”数组内的“Ipv6Pool”字段映射而来。
Ipv6CidrBlockAssociationSet.NetworkBorderGroup event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group 直接从原始日志中的“Ipv6CidrBlockAssociationSet”数组内的“NetworkBorderGroup”字段映射而来。
OwnerID event.idm.entity.entity.resource.attribute.labels.owner_id 直接从原始日志中的“OwnerID”字段映射而来。
event.idm.entity.entity.resource.attribute.labels.state 直接从原始日志中的“State”(状态)字段映射而来。
TagSet.Key event.idm.entity.entity.resource.attribute.labels.key 直接从原始日志中的“TagSet”数组内的“Key”字段映射而来。这会为“TagSet”中的每个代码创建一个新标签。
TagSet.Value event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的“TagSet”数组内的“Value”字段映射而来。这会根据“键”字段为创建的每个相应标签填充值。
不适用 event.idm.entity.entity.resource.attribute.cloud.environment 在解析器代码中硬编码为“AMAZON_WEB_SERVICES”。
不适用 event.idm.entity.entity.resource.resource_type 在解析器代码中硬编码为“VPC_NETWORK”。
不适用 event.idm.entity.metadata.collected_timestamp 填充事件时间戳,该时间戳派生自原始日志中的“collection_time”字段。
不适用 event.idm.entity.metadata.entity_type 在解析器代码中硬编码为“RESOURCE”。
不适用 event.idm.entity.metadata.product_name 在解析器代码中硬编码为“Amazon VPC”。
不适用 event.idm.entity.metadata.vendor_name 在解析器代码中硬编码为“AWS”。
不适用 events.timestamp 填充事件时间戳,该时间戳派生自原始日志中的“collection_time”字段。