收集 Cloud Compute 上下文日志
本文档介绍了如何使用 Cloud Storage 导出计算环境日志并将其提取到 Google 安全运营中。 Google Cloud 解析器会以 JSON 格式从日志中提取信息。然后,它会将提取的数据归一化并转换为 Google SecOps UDM 格式,重点关注虚拟机的详细信息,例如硬件规格、网络配置、安全设置以及与其他实体的关联。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保在您的 Google Cloud 环境中设置了计算服务并使其处于活跃状态。
- 确保您对 Google Cloud 具有特权访问权限和适当的权限。
创建 Cloud Storage 存储桶
- 登录 Google Cloud 控制台。
前往 Cloud Storage 存储分区页面。
点击创建。
在创建存储桶页面上,输入您的存储桶信息。完成以下各步骤后,点击继续以进入下一步:
在开始使用部分中,执行以下操作:
- 输入符合存储分区名称要求的唯一名称;例如 compute-context-logs。
如需启用分层命名空间,请点击展开箭头以展开优化文件导向型和数据密集型工作负载部分,然后选择在此存储分区上启用分层命名空间。
如需添加存储分区标签,请点击展开箭头以展开标签部分。
点击添加标签,然后为标签指定键和值。
在选择数据存储位置部分中,执行以下操作:
- 选择位置类型。
使用位置类型菜单选择一个位置,用于永久存储存储分区中的对象数据。
如需设置跨存储分区复制,请展开设置跨存储分区复制部分。
在为数据选择一个存储类别部分中,为存储分区选择默认存储类别,或者选择 Autoclass 对存储分区数据进行自动存储类别管理。
在选择如何控制对对象的访问权限部分中,选择否以强制执行禁止公开访问,然后为存储分区对象选择访问权限控制模型。
在选择如何保护对象数据部分中,执行以下操作:
- 在数据保护下,选择您要为存储分区设置的任何选项。
- 如需选择对象数据的加密方式,请点击标有数据加密的展开箭头,然后选择数据加密方法。
点击创建。
配置 Google Cloud 计算日志导出
- 登录 Google Cloud 控制台。
- 依次前往日志记录 > 日志路由器。
- 点击创建接收器。
提供以下配置参数:
- 接收器名称:输入一个有意义的名称,例如
Compute-Context-Sink
。 - 接收器目标位置:选择 Cloud Storage 存储,然后输入存储分区的 URI;例如
gs://compute-context-logs
。 日志过滤器:
logName="*compute*" resource.type="gce_instance"
- 接收器名称:输入一个有意义的名称,例如
点击创建。
配置 Cloud Storage 权限
- 依次前往 IAM 和管理 > IAM。
- 找到 Cloud Logging 服务账号。
- 向存储分区授予 roles/storage.admin。
在 Google SecOps 中配置 Feed 以提取 Google Cloud 计算环境日志
- 依次前往 SIEM 设置 > Feed。
- 点击新增。
- 在Feed 名称字段中,输入 Feed 的名称;例如,Google Cloud 计算环境日志。
- 选择 Google Cloud Storage 作为来源类型。
- 选择 GCP 计算环境作为日志类型。
- 点击 Chronicle 服务账号字段旁边的获取服务账号。
- 点击下一步。
为以下输入参数指定值:
- 存储分区 URI:Cloud Storage 存储分区网址;例如
gs://compute-context-logs
。 - URI 类型:选择包含子目录的目录。
来源删除选项:根据您的偏好选择删除选项。
资源命名空间:资源命名空间。
提取标签:应用于此 Feed 中的事件的标签。
- 存储分区 URI:Cloud Storage 存储分区网址;例如
点击下一步。
在最终确定界面中查看新的 Feed 配置,然后点击提交。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
祖先 | event.idm.entity.entity.asset.attribute.labels.value | ancestors 数组中的每个祖先值都会映射到一个键为 ancestors 的单独标签。 |
assetType | event.idm.entity.entity.asset.category | 直接从 assetType 字段映射。 |
asset_type | event.idm.entity.entity.asset.category | 直接从 asset_type 字段映射。 |
name | event.idm.entity.entity.resource.name | 直接从名称字段映射。 |
resource.data.cpuPlatform | event.idm.entity.entity.asset.hardware.cpu_platform | 直接从 resource.data.cpuPlatform 字段映射。 |
resource.data.creationTimestamp | event.idm.entity.entity.asset.attribute.creation_time | 会从 resource.data.creationTimestamp 字段解析为时间戳格式。 |
resource.data.id | event.idm.entity.entity.asset.product_object_id | 直接从 resource.data.id 字段映射。 |
resource.data.labels.business_function | event.idm.entity.entity.asset.attribute.labels.value | 直接从 resource.data.labels.business_function 字段映射,并将键设置为 business_function 。 |
resource.data.labels.environment | event.idm.entity.entity.asset.attribute.labels.value | 直接从 resource.data.labels.environment 字段映射,键设置为 environment 。 |
resource.data.labels.infra_location | event.idm.entity.entity.asset.attribute.labels.value | 直接从 resource.data.labels.infra_location 字段映射,键设置为 infra_location 。 |
resource.data.labels.instance_group | event.idm.entity.user.group_identifiers | 直接从 resource.data.labels.instance_group 字段映射。 |
resource.data.labels.os | event.idm.entity.entity.asset.platform_software.platform_version | 直接从 resource.data.labels.os 字段映射而来。 |
resource.data.labels.primary_application | event.idm.entity.entity.asset.attribute.labels.value | 直接从 resource.data.labels.primary_application 字段映射,并将键设置为 primary_application 。 |
resource.data.labels.project_code | event.idm.entity.entity.asset.attribute.labels.value | 直接从 resource.data.labels.project_code 字段映射,并将键设置为 project_code 。 |
resource.data.lastStartTimestamp | event.idm.entity.entity.asset.last_boot_time | 会解析为 resource.data.lastStartTimestamp 字段的时间戳格式。 |
resource.data.machineType | event.idm.entity.entity.asset.hardware.model | 系统使用正则表达式从 resource.data.machineType 字段中提取机器类型。 |
resource.data.name | event.idm.entity.entity.asset.hostname | 直接从 resource.data.name 字段映射。 |
resource.data.networkInterfaces.0.accessConfigs.0.natIP | event.idm.entity.entity.asset.nat_ip | 系统会映射第一个网络接口中的第一个 NAT IP 地址。 |
resource.data.networkInterfaces.0.network | event.idm.entity.entity.asset.attribute.cloud.vpc.name | 系统使用正则表达式从 resource.data.networkInterfaces.0.network 字段中提取网络 ID。 |
resource.data.networkInterfaces.0.networkIP | event.idm.entity.entity.asset.ip | 第一个网络接口的 IP 地址已映射。 |
resource.data.networkInterfaces.1.networkIP | event.idm.entity.entity.asset.ip | 系统会映射第二个网络接口的 IP 地址。 |
resource.data.selfLink | event.idm.entity.entity.url | 直接从 resource.data.selfLink 字段映射。 |
resource.data.serviceAccounts.0.email | event.idm.entity.relations.entity.user.email_addresses | 第一个服务账号的电子邮件地址已映射。 |
resource.data.status | event.idm.entity.entity.asset.deployment_status | 如果状态为 RUNNING 、PROVISIONING 、STAGING 、STOPPING 、SUSPENDING 、SUSPENDED 、REPAIRING 、TERMINATED 之一,则映射为 ACTIVE 。否则,映射到 DEPLOYMENT_STATUS_UNSPECIFIED 。 |
event.idm.entity.entity.asset.attribute.cloud.availability_zone | 可用区是通过组合 region 和 zone_suffix 字段构建的。 | |
event.idm.entity.entity.asset.attribute.cloud.environment | 设置为 GOOGLE_CLOUD_PLATFORM 。 |
|
event.idm.entity.entity.asset.attribute.cloud.project.name | 系统会使用正则表达式从名称字段中提取项目 ID。 | |
event.idm.entity.entity.asset.attribute.cloud.project.resource_type | 设置为 CLOUD_PROJECT 。 |
|
event.idm.entity.entity.asset.attribute.cloud.vpc.resource_type | 设置为 VPC_NETWORK 。 |
|
event.idm.entity.entity.resource.resource_type | 如果 asset_type 或 assetType 包含 Instance ,则设为 VIRTUAL_MACHINE 。 |
|
event.idm.entity.entity.resource.type | 如果 asset_type 或 assetType 包含 Instance ,则设为 VIRTUAL_MACHINE 。 |
|
event.idm.entity.metadata.collected_timestamp | 设置为 Logstash 事件时间戳。 | |
event.idm.entity.metadata.entity_type | 设置为 ASSET 。 |
|
event.idm.entity.metadata.product_name | 设置为 GCP Compute Context 。 |
|
event.idm.entity.metadata.vendor_name | 设置为 Google Cloud Platform 。 |
|
event.idm.entity.relations.entity.user.attribute.cloud.environment | 设置为 GOOGLE_CLOUD_PLATFORM 。 |
|
event.idm.entity.relations.entity_type | 设置为 USER 。 |
|
event.idm.entity.relations.relationship | 设置为 ADMINISTERS 。 |
变化
2024-01-27
bug 修复:
- 将
name
、resource.data.id
、resource.data.name
、region
、resource.data.selfLink
、project_id
、asset_network_id
和{region}-%{zone_suffix}
的映射分隔到单独的更改块中。
2024-01-05
增强功能:
- 移除了
event.idm.entity.entity.namespace
的映射。 - 添加了对从
resource.data.networkInterfaces
解析所有networkIP
的支持。
2022-07-29
- 添加了针对
resource.data.lastStartTimestamp
的条件检查,并映射到entity.asset.last_boot_time
。 - 添加了针对
resource.data.networkInterfaces.0.networkIP
的条件检查,并映射到entity.asset.ip
。
2022-04-04
- 更新供应商名称。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。