收集 Cloud Identity 设备用户日志
解析器版本: 1.0
本文档介绍了如何使用 第三方 API 方法(
推荐方法)将 Cloud Identity 设备用户日志
收集到 Google Security Operations 中。解析器首先从 JSON 格式的
Cloud Identity Device Users 日志中提取数据,并将时间戳转换为
标准化格式。然后,它会将原始日志数据中的特定字段映射到
统一数据模型 (UDM) 中用户实体的相应字段、用户实体与资产的
关系以及其他用户属性(例如管理和
密码状态)。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- 为服务账号设置网域级委托 。必须为服务账号授权以下范围:
https://www.googleapis.com/auth/cloud-identity.devices.readonly
- 您的 Google Cloud 项目中启用了以下 API:
- Cloud Identity API
- Google Workspace Admin SDK
- Alert Center API
推荐:设置第三方 API Feed
您可以通过以下两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed > 添加新 Feed
- 内容中心 > 内容包 > 开始使用
如何设置 Google Cloud Identity 设备用户 Feed
- 点击 Google Cloud Compute 平台 包。
- 找到 Google Cloud Identity 设备用户 日志类型,然后点击 添加新 Feed 。
- 为以下字段指定值:
- 来源类型:选择第三方 API。
- OAuth JWT 端点:输入 OAuth 令牌端点:
https://oauth2.googleapis.com/token - JWT 声明发布者:输入服务账号的电子邮件地址(可在服务账号的 JSON 密钥文件中找到)。
- JWT 声明主题:输入在 Workspace 控制台中被授予服务管理员或超级用户角色的用户的电子邮件地址(通过网域级委托模拟的用户)。
- JWT 声明受众群体:再次输入端点:
https://oauth2.googleapis.com/token - RSA 私钥:粘贴服务账号的 JSON 密钥文件中的私钥的完整内容(包括
-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----行)。
高级选项
- Feed 名称:预填充的值,用于标识 Feed。
- 资产命名空间:与 Feed 关联的命名空间。
- 提取标签:应用于此 Feed 中所有事件的标签。
- 点击创建 Feed 。
如需详细了解如何为此产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed。
替代方法:通过 Cloud Storage 提取
- 登录 Google Cloud 控制台。
进入 Cloud Storage 存储分区 页面。
点击创建 。
在创建存储桶 页面上,输入您的存储桶信息。完成以下每个步骤后,点击继续 以继续执行下一步:
在开始使用 部分中,执行以下操作:
- 输入符合存储桶名称要求的唯一名称;例如,gcp-cloudidentity-users-logs 。
如需启用分层命名空间,请点击展开箭头以展开针对文件导向型和数据密集型工作负载进行优化 部分,然后选择在此存储桶上启用分层命名空间 。
如需添加存储桶标签,请点击展开箭头以展开标签 部分。
点击添加标签 ,然后为标签指定键和值。
在选择数据存储位置 部分中,执行以下操作:
- 选择位置类型 。
使用位置类型菜单选择一个位置 ,用于永久存储存储桶中的对象数据。
如需设置跨存储桶复制,请展开设置跨存储桶复制 部分。
在为数据选择一个存储类别 部分中,为存储桶选择默认存储类别 ,或者选择 Autoclass 对存储桶数据进行自动存储类别管理。
在选择如何控制对对象的访问权限 部分中,取消选中强制执行禁止公开访问 ,然后为存储桶对象选择访问权限控制 模型。
在选择如何保护对象数据 部分中,执行以下操作:
- 在数据保护 下,选择您要为存储桶设置的任何选项。
- 如需选择对象数据的加密方式,请点击标有数据加密的展开箭头,然后选择数据加密方法。
点击创建 。
配置 Cloud Identity 设备用户日志导出
- 登录 Google Cloud 控制台。
- 依次前往日志记录 > 日志路由器。
- 点击创建接收器 。
提供以下配置参数:
- 接收器名称:输入有意义的名称;例如,
Cloudidentity-Users-Sink。 - 接收器目标位置:选择 Cloud Storage 存储空间,然后输入存储桶的 URI;例如,
gs://gcp-cloudidentity-users-logs/。 日志过滤器:
logName="projects/<your-project-id>/logs/cloudaudit.googleapis.com%2Factivity" resource.type="cloud_identity_user"设置导出选项:包含所有日志条目。
- 接收器名称:输入有意义的名称;例如,
点击创建 。
配置 Cloud Storage 的权限
- 依次前往 IAM 和管理员 > IAM。
- 找到 Cloud Logging 服务帐号。
- 授予对存储桶的 roles/storage.admin 。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| collection_time.nanos | timestamp.nanos | 直接从日志字段映射。表示事件时间戳(以纳秒为单位)。 |
| collection_time.seconds | timestamp.seconds | 直接从日志字段映射。表示事件时间戳(以秒为单位)。 |
| createTime | entity.metadata.creation_timestamp | 在经过 date 过滤器解析后直接从日志字段映射。表示用户的创建时间戳。 |
| managementState | entity.additional.fields.value.string_value | 直接从日志字段映射。表示用户的管理状态。 |
| name | entity.entity.resource.name | 直接从日志字段映射。表示设备用户的完整资源名称。 |
| passwordState | entity.additional.fields.value.string_value | 直接从日志字段映射。表示用户的密码状态。只有当原始日志中存在 passwordState 字段时,此字段才会映射。 |
| userEmail | entity.entity.user.email_addresses | 直接从日志字段映射。表示用户的电子邮件地址。 |
| entity.additional.fields.key | 在解析器中设置为常量值 Management State。此字段用于为 managementState 值提供上下文。 |
|
| entity.additional.fields.key | 在解析器中设置为常量值 Password State。此字段用于为 passwordState 值提供上下文,并且只有当原始日志中存在 passwordState 时才会显示。 |
|
| entity.entity.user.product_object_id | 使用 grok 过滤器从 name 字段中提取,捕获 deviceuser_id 部分。表示设备用户的唯一标识符。 |
|
| entity.metadata.collected_timestamp.nanos | 从 collection_time.nanos 复制。表示收集日志时的时间戳。 |
|
| entity.metadata.collected_timestamp.seconds | 从 collection_time.seconds 复制。表示收集日志时的时间戳。 |
|
| entity.metadata.entity_type | 在解析器中设置为常量值 USER。 |
|
| entity.metadata.product_name | 在解析器中设置为常量值 GCP Cloud Identity Device Users。 |
|
| entity.metadata.vendor_name | 在解析器中设置为常量值 Google Cloud Platform。 |
|
| relations.entity.asset.product_object_id | 使用 grok 过滤器从 name 字段中提取,捕获 device_id 部分。表示设备的唯一标识符。 |
|
| relations.entity_type | 在解析器中设置为常量值 ASSET。 |
|
| relations.relationship | 在解析器中设置为常量值 MEMBER。 |