收集 Identity and Access Management (IAM) 分析上下文日志

解析器版本: 1.0

支持:

本文档介绍了如何使用 Cloud Storage 将 IAM 分析日志导出并注入到 Google Security Operations 中。解析器会从 IAM JSON 数据中提取用户和资源信息。然后,它会将提取的字段映射到 UDM,创建具有关联角色和资源关系的用户实体,最终丰富 Google SecOps 平台中的安全上下文。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例。
  • IAM 已在您的 Google Cloud 环境中设置并处于活动状态。
  • 对 Google Cloud 的特权访问权限,以及访问 IAM 日志的适当权限。

创建 Cloud Storage 存储桶

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

    进入“存储分区”

  3. 点击创建

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

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

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

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

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

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

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

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

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

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

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

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

配置 IAM 分析日志导出

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

    • 接收器名称:输入有意义的名称;例如,IAM-Analysis-Sink
    • 接收器目标位置:选择 Cloud Storage 存储,然后输入存储桶的 URI;例如,gs://gcp-iam-analysis-logs/
    • 日志过滤器

      logName="*iam*"
      resource.type="gce_instance"
      

配置 Cloud Storage 的权限

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

设置 Feed

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

  1. 依次前往 SIEM 设置 > Feed
  2. 点击 Add New Feed (添加新 Feed)。
  3. 在下一页上,点击 Configure a single feed (配置单个 Feed)。
  4. Feed 名称 字段中,输入 Feed 的名称;例如,IAM Analysis Logs
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 GCP IAM Analysis 作为日志类型
  7. 点击 Chronicle 服务账号 字段旁边的 Get Service Account (获取服务账号)。
  8. 点击下一步
  9. 为以下输入参数指定值:

    • 存储分区 URI:Cloud Storage 存储桶网址;例如,gs://gcp-iam-analysis-logs/。此网址必须以尾部正斜杠 (/) 结尾。
    • 来源删除选项:根据您的偏好选择删除选项。

    • 最长文件存在时间:包含在过去指定天数内修改的文件。默认值为 180 天。

  10. 点击下一步

  11. 最终确定 屏幕中检查新 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
accessControlLists.accesses.permission relations.entity.resource.attribute.permissions.name 直接来自原始日志中的 accessControlLists.accesses.permission 字段。
attachedResourceFullName relations.entity.resource.name 直接来自原始日志中的 attachedResourceFullName 字段,但移除了所有尾部资源名称。
relations.entity.resource.attribute.cloud.environment 设置为 GOOGLE_CLOUD_PLATFORM
relations.entity.resource.product_object_id 对于 STORAGE_BUCKET,直接来自原始日志中的 attachedResourceFullName 字段,但移除了所有尾部资源名称。对于 BigQuery 数据集,它是 projectName(从 attachedResourceFullName 中提取)后跟一个英文冒号和 datasetName(从 attachedResourceFullName 中提取)字段。
relations.entity.resource.resource_type 由原始日志中 attachedResourceFullName 字段的模式确定。
relations.entity_type 设置为 RESOURCE,但 SERVICE_ACCOUNT 除外,后者设置为 USER
relations.relationship 设置为 MEMBER
metadata.collected_timestamp 直接来自原始日志中的 timestamp 字段。
metadata.entity_type 设置为 USER
metadata.product_name 设置为 GCP IAM ANALYSIS
metadata.vendor_name 设置为 Google Cloud Platform
iamBinding.role entity.user.attribute.roles.name 直接来自原始日志中的 iamBinding.role 字段。
identityList.identities.name entity.user.attribute.roles.type 如果 identityList.identities.name 字段包含字符串 serviceAccount,则设置为 SERVICE_ACCOUNT
entity.user.email_addresses 如果 identityList.identities.name 字段包含 @ 符号,则将其视为电子邮件地址。
entity.user.userid 如果 identityList.identities.name 字段不包含 @ 符号,则将其视为用户 ID。
identityList.identities.product_object_id entity.user.product_object_id 直接来自原始日志中的 identityList.identities.product_object_id 字段。
timestamp timestamp 直接来自原始日志中的 timestamp 字段。

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。