收集 Fivetran 日志
解析器版本: 1.0
支持:
Google SecOps
SIEM
本文档介绍了如何配置 Fivetran 以使用网络钩子将日志推送到 Google Security Operations。
Fivetran 是一个数据集成平台,可自动将来自各种来源的数据流水线传输到数据仓库。Fivetran 会生成运营事件,包括连接器同步事件、转换事件和连接状态更改。这些事件可以通过出站网络钩子发送到外部端点,以进行监控、提醒和安全分析。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例。
- 具有管理员或账号级权限的 Fivetran 账号。
- 对 Google Cloud Console 的访问权限(用于创建 API 密钥)。
- 已启用 REST API 访问权限 的 Fivetran 账号。
在 Google SecOps 中创建网络钩子 Feed
创建 Feed
- 依次前往 SIEM 设置 > Feed。
- 点击 + 添加新项。
- 选择配置单个 Feed 。
- 在 Feed 名称 字段中,输入一个名称(例如
Fivetran Events)。 - 选择 Webhook 作为来源类型 。
- 选择 Fivetran 作为日志类型 。
- 点击下一步 。
- 为以下输入参数指定值:
- 拆分分隔符 (可选):留空。
- 资产命名空间:资产命名空间。
- 提取标签:要应用于此 Feed 中事件的标签。
- 点击下一步 。
- 检查新的新闻信息流配置,然后点击提交 。
生成并保存密钥
- 在 Feed 详情页面上,点击生成密钥 。
- 对话框会显示密钥。
- 复制并妥善保存 密钥。
获取 Feed 端点网址
- 前往 Feed 的详情 标签页。
- 在端点信息 部分中,复制 Feed 端点网址 。
- 保存此网址,以在后续步骤中使用。
- 点击完成 。
创建 Google Cloud API 密钥
Google SecOps 需要 API 密钥进行身份验证。
创建 API 密钥
- 前往 Google Cloud 控制台的“凭据”页面。
- 选择您的项目。
- 依次点击创建凭据 > API 密钥。
- 点击 Edit API key (修改 API 密钥)以限制密钥。
限制 API 密钥
- 在 API 密钥 设置中:
- 名称:输入一个描述性名称(例如
SecOps Webhook API Key)。
- 名称:输入一个描述性名称(例如
- 在 API 限制 下:
- 选择限制密钥 。
- 在下拉列表中,搜索并选择 Google SecOps API (或 Chronicle API )。
- 点击保存 。
- 复制 API 密钥值并妥善保存。
配置 Fivetran 网络钩子
构建网络钩子网址
将端点网址和 API 密钥组合在一起:
<ENDPOINT_URL>?key=<API_KEY>
使用 Fivetran REST API 创建网络钩子
获取 Fivetran API 凭据
- 登录您的 Fivetran 账号。
- 依次前往账号设置 > API 配置。
- 如果您没有 API 密钥,请点击生成 API 密钥 。
- 复制 API 密钥 和 API 密钥 。
创建账号级网络钩子
使用此方法可接收来自账号中所有连接器的事件。
打开终端并运行以下命令:
curl -X POST https://api.fivetran.com/v1/webhooks/account \ -u "API_KEY:API_SECRET" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "url": "https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=YOUR_CHRONICLE_API_KEY", "events": [ "sync_start", "sync_end", "transformation_start", "transformation_succeeded", "transformation_failed", "connection_successful", "connection_failure", "create_connector", "pause_connector", "resume_connector", "edit_connector", "delete_connector", "force_update_connector", "resync_connector", "resync_table" ], "active": true, "secret": "YOUR_CHRONICLE_SECRET_KEY" }'- 其中,
{region}是 Google SecOps 实例的区域(例如us、europe或asia-southeast1),{parent}是资源路径,格式为projects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>。
- 其中,
网络钩子详情
可用的网络钩子事件
| 事件 | 说明 |
|---|---|
sync_start |
连接器同步已开始 |
sync_end |
连接器同步已完成 |
transformation_start |
转换已开始 |
transformation_succeeded |
转换已成功完成 |
transformation_failed |
转换失败 |
connection_successful |
连接测试成功 |
connection_failure |
连接测试失败 |
create_connector |
已创建新连接器 |
网络钩子重试行为
Fivetran 会自动重试失败的网络钩子,最多重试 24 小时 ,重试时间表如下:
| 重试 | 首次尝试后的时间 |
|---|---|
| 第 1 次重试 | 6 分钟 |
| 第 2 次重试 | 27 分钟 |
| 第 3 次重试 | 1 小时 45 分钟 |
| 第 4 次重试 | 6 小时 25 分钟 |
| 第 5 次重试 | 23 小时 13 分钟 |
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
jsonPayload.connector_id |
additional.connector_id |
直接复制值。 |
jsonPayload.connector_type |
additional.connector_type |
直接复制值。 |
jsonPayload.data.query |
additional.query |
直接复制值。 |
| 不适用 | metadata.event_type |
根据主体和目标是否存在进行设置。 |
jsonPayload.event |
metadata.product_event_type |
直接复制值。 |
jsonPayload.sync_id |
metadata.product_log_id |
直接复制值。 |
jsonPayload.connector_name |
principal.hostname |
直接复制值。 |
resource.labels.email_id |
principal.user.email_addresses |
如果格式为有效电子邮件地址,则进行映射。 |
resource.labels.unique_id |
principal.user.userid |
直接复制值。 |
severity |
security_result.severity |
“INFO”映射到 INFORMATIONAL 。 |
logName |
target.resource.name |
直接复制值。 |
| 不适用 | target.resource.type |
设置为 DATABASE 。 |
| 不适用 | metadata.product_name |
设置为 FIVETRAN 。 |
| 不适用 | metadata.vendor_name |
设置为 FIVETRAN 。 |