收集 Cloud Storage 情境日志

支持的平台:

本文档介绍了如何使用 Cloud Storage 将 Cloud Storage 情境日志导出并提取到 Google 安全运营中。解析器会清理 Cloud Storage 日志中传入的 JSON 数据并对其进行结构化处理。然后,它会将相关字段映射到统一数据模型 (UDM),并使用标签和元数据丰富数据,以便在安全生态系统中进行一致的表示和分析。

准备工作

  • 确保您拥有 Google SecOps 实例。
  • 确保 Cloud Storage 已在您的环境中设置并处于启用状态。 Google Cloud
  • 确保您对 Google Cloud 具有特权访问权限和适当的权限。

创建 Cloud Storage 存储桶

  1. 登录 Google Cloud 控制台
  2. 前往 Cloud Storage 存储分区页面。

    进入“存储桶”

  3. 点击创建

  4. 创建存储桶页面上,输入您的存储桶信息。完成以下各步骤后,点击继续以进入下一步:

    1. 开始使用部分中,执行以下操作:

      1. 输入符合存储分区名称要求的唯一名称;例如 google-storage-context-logs
      2. 如需启用分层命名空间,请点击展开箭头以展开优化文件导向型和数据密集型工作负载部分,然后选择在此存储分区上启用分层命名空间

      3. 如需添加存储分区标签,请点击展开箭头以展开标签部分。

      4. 点击添加标签,然后为标签指定键和值。

    2. 选择数据存储位置部分中,执行以下操作:

      1. 选择位置类型
      2. 使用位置类型菜单选择一个位置,用于永久存储存储分区中的对象数据。

      3. 如需设置跨存储分区复制,请展开设置跨存储分区复制部分。

    3. 为数据选择一个存储类别部分中,为存储分区选择默认存储类别,或者选择 Autoclass 对存储分区数据进行自动存储类别管理。

    4. 选择如何控制对对象的访问权限部分中,选择以强制执行禁止公开访问,然后为存储分区对象选择访问权限控制模型

    5. 选择如何保护对象数据部分中,执行以下操作:

      1. 数据保护下,选择您要为存储分区设置的任何选项。
      2. 如需选择对象数据的加密方式,请点击标有数据加密的展开箭头,然后选择数据加密方法
  5. 点击创建

配置 Cloud Storage 上下文日志导出

  1. 登录 Google Cloud 控制台
  2. 依次前往日志记录 > 日志路由器
  3. 点击创建接收器
  4. 提供以下配置参数:

    • 接收器名称:输入一个有意义的名称,例如 Storage-Context-Sink
    • 接收器目标位置:选择 Cloud Storage 存储,然后输入存储分区的 URI;例如 gs://google-storage-context-logs
    • 日志过滤器

      logName="*storage*"
      resource.type="gcs_bucket"
      
  5. 点击创建

配置 Cloud Storage 权限

  1. 依次前往 IAM 和管理 > IAM
  2. 找到 Cloud Logging 服务账号。
  3. 向存储分区授予 roles/storage.admin

在 Google SecOps 中配置 Feed 以提取 Cloud Storage 上下文日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称;例如 Cloud Storage 情境日志
  4. 选择 Google Cloud Storage 作为来源类型
  5. 选择 GCP Google Cloud Storage Context 作为日志类型
  6. 点击 Chronicle 服务账号字段旁边的获取服务账号
  7. 点击下一步
  8. 为以下输入参数指定值:

    • 存储分区 URI:Cloud Storage 存储分区网址;例如 gs://google-storage-context-logs
    • URI 类型:选择包含子目录的目录
    • 来源删除选项:根据您的偏好选择删除选项。

    • 资源命名空间资源命名空间

    • 提取标签:应用于此 Feed 中的事件的标签。

  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
祖先 event.idm.entity.entity.resource.attribute.labels.value 系统会从原始日志中的 ancestors 数组中提取祖先值。
assetType event.idm.entity.entity.resource.type 直接从原始日志中的 assetType 字段映射而来。
insertId event.idm.entity.metadata.product_entity_id 直接从原始日志中的 insertId 字段映射而来。
labels.compute.googleapis.com/resource_name event.idm.entity.entity.resource.name 直接从原始日志中的 labels.compute.googleapis.com/resource_name 字段映射而来。
labels.k8s-pod/controller-revision-hash event.idm.entity.entity.file.sha1 直接从原始日志中的 labels.k8s-pod/controller-revision-hash 字段映射而来。
labels.k8s-pod/name event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 labels.k8s-pod/name 字段映射而来。
labels.k8s-pod/pod-template-generation event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 labels.k8s-pod/pod-template-generation 字段映射而来。
logName event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 logName 字段映射而来。
name event.idm.entity.entity.resource.name 直接从原始日志中的名称字段映射。
receiveTimestamp event.idm.entity.entity.resource.attribute.creation_time 从原始日志中的 receiveTimestamp 字段转换为时间戳格式。
resource.data.iamConfiguration.publicAccessPrevention event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.iamConfiguration.publicAccessPrevention 字段映射而来。
resource.data.id event.idm.entity.entity.resource.product_object_id 直接从原始日志中的 resource.data.id 字段映射而来。
resource.data.kind event.idm.entity.entity.resource.type 直接从原始日志中的 resource.data.kind 字段映射而来。
resource.data.labels.app_id event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.app_id 字段映射而来。
resource.data.labels.app_name event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.app_name 字段映射而来。
resource.data.labels.bucket_id event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.bucket_id 字段映射而来。
resource.data.labels.data_classification event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.data_classification 字段映射而来。
resource.data.labels.dept_name event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.dept_name 字段映射而来。
resource.data.labels.dept_no event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.dept_no 字段映射而来。
resource.data.labels.environment event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.environment 字段映射而来。
resource.data.labels.goog-composer-environment event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.goog-composer-environment 字段映射而来。
resource.data.labels.goog-composer-location event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.goog-composer-location 字段映射而来。
resource.data.labels.goog-composer-version event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.goog-composer-version 字段映射而来。
resource.data.labels.technical_contact event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.technical_contact 字段映射而来。
resource.data.labels.type event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.data.labels.type 字段映射而来。
resource.data.location event.idm.entity.entity.location.name 直接从原始日志中的 resource.data.location 字段映射而来。
resource.data.projectNumber event.idm.entity.entity.resource.attribute.cloud.project.id 直接从原始日志中的 resource.data.projectNumber 字段映射而来。
resource.data.selfLink event.idm.entity.entity.url 直接从原始日志中的 resource.data.selfLink 字段映射而来。
resource.data.timeCreated event.idm.entity.entity.resource.attribute.creation_time 从原始日志中的 resource.data.timeCreated 字段转换为时间戳格式。
resource.data.updated event.idm.entity.entity.resource.attribute.last_update_time 从原始日志中的 resource.data.updated 字段转换为时间戳格式。
resource.discoveryDocumentUri event.idm.entity.entity.file.full_path 直接从原始日志中的 resource.discoveryDocumentUri 字段映射而来。
resource.labels.cluster_name event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.labels.cluster_name 字段映射而来。
resource.labels.container_name event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.labels.container_name 字段映射而来。
resource.labels.location event.idm.entity.entity.location.name 直接从原始日志中的 resource.labels.location 字段映射而来。
resource.labels.namespace_name event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.labels.namespace_name 字段映射而来。
resource.labels.pod_name event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.labels.pod_name 字段映射而来。
resource.labels.project_id event.idm.entity.entity.resource.attribute.cloud.project.id 直接从原始日志中的 resource.labels.project_id 字段映射而来。
resource.parent event.idm.entity.entity.resource.parent 直接从原始日志中的 resource.parent 字段映射而来。
resource.type event.idm.entity.entity.resource.type 直接从原始日志中的 resource.type 字段映射而来。
resource.version event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 resource.version 字段映射而来。
textPayload event.idm.entity.entity.resource.attribute.labels.value 直接从原始日志中的 textPayload 字段映射而来。
不适用 event.idm.entity.metadata.collected_timestamp 收集的时间戳是日志条目时间戳。
不适用 event.idm.entity.metadata.entity_type 已硬编码为 RESOURCE
不适用 event.idm.entity.metadata.product_name 已硬编码为 GCP Storage Context
不适用 event.idm.entity.metadata.vendor_name 已硬编码为 Google Cloud Platform
不适用 event.idm.entity.entity.resource.attribute.cloud.environment 已硬编码为 GOOGLE_CLOUD_PLATFORM
不适用 event.idm.entity.entity.resource.resource_type 已硬编码为 STORAGE_BUCKET
不适用 event.timestamp 事件时间戳是日志条目时间戳。

变化

2024-05-28

增强功能

  • 处理了未解析的 JSON 日志。

2023-04-13

增强功能

  • resource.data.iamConfiguration.publicAccessPreventionresource.version 映射到 entity.resource.attribute.label
  • resource.discoveryDocumentUri 映射到 entity.file.full_path

2022-12-07

bug 修复

  • resource.data.timeCreated 的映射从 event.timestamp 更改为了 entity.resource.attribute.creation_time

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