将 Google 表单与 Google SecOps 集成

本文档介绍了如何将 Google 表单与 Google Security Operations (Google SecOps) 集成。

集成版本:1.0

准备工作

在 Google SecOps 中配置 Google 表单集成之前,请确保您的 Google Cloud 和 Google Workspace 环境已准备好进行 API 访问和模拟。

为了使集成正常运行,必须协调一致地使用以下三个元素来管理权限:

  1. 服务账号:充当系统之间的桥梁。

  2. 委托用户:服务账号模拟的用于访问表单数据的身份。

  3. 权限:用于定义身份可以执行哪些操作的范围和角色。

如果您要模拟的用户已拥有必要的管理权限,则无需创建自定义角色。不过,许多组织更倾向于创建具有自定义角色的专用服务用户,以遵循最小权限原则。

完成以下前提步骤:

  1. 创建服务账号
  2. 创建 JSON 密钥
  3. 为项目启用所需的 API
  4. 可选:为集成创建自定义角色
  5. 可选:将自定义角色分配给用户
  6. 向您的服务账号进行全网域授权

创建服务账号

服务账号代表非人类用户,可为集成提供一种安全的方式来验证身份并获得授权以访问您的数据。

  1. 在 Google Cloud 控制台中,前往凭证页面。

    转到“凭据”页面

  2. 依次选择add_2创建凭据 > 服务账号

  3. 服务账号详细信息下,在服务账号名称字段中输入一个名称。

  4. 可选:修改服务账号 ID。

  5. 点击完成

创建 JSON 密钥

Google SecOps 需要 JSON 密钥文件来证明服务账号的身份并建立安全连接。

  1. 选择您的服务账号,然后前往密钥

  2. 点击添加密钥 > 创建新密钥

  3. 对于密钥类型,选择 JSON,然后点击创建。此时会显示一个对话框,提示私钥已保存到您的计算机,然后系统会将该私钥的副本下载到您的计算机。

为项目启用所需的 API

您必须启用特定的 Google Cloud API,以便集成与 Google 表单和 Google Workspace 目录进行交互。

  1. 在 Google Cloud 控制台中,前往 API 和服务

    进入“API 和服务”

  2. 点击添加启用 API 和服务

  3. 为您的项目启用以下 API:

    • Admin SDK API

    • Google Forms API

可选:为集成创建自定义角色

如果您用于模拟的用户账号尚不具备必要的管理权限,您可以创建一个权限有限的自定义角色。为了支持集成,用户需要以下方面的 Admin API 权限:

  • 组织部门

  • 用户

  • 群组

  1. 在 Google 管理控制台中,依次点击账号 > 管理员角色

  2. 选择创建新角色

  3. 为新的自定义角色提供名称,然后点击继续

  4. 选择权限页面上,找到 Admin API 权限部分。

  5. 选中组织部门用户群组对应的复选框。

  6. 依次点击继续 > 创建角色

可选:将自定义角色分配给用户

如果您在上一步中创建了自定义角色,现在必须将其分配给用于模拟的具体电子邮件地址。

  1. 在 Google 管理控制台中,依次前往目录 > 用户

  2. 选择您打算用于集成的用户(现有管理员或新的专用用户)。

  3. 打开相应用户的设置,然后依次点击管理员角色和权限> 修改

  4. 选择您创建的自定义角色,然后将切换开关切换为已分配

  5. 点击保存

向您的服务账号进行全网域授权

全网域授权功能可让您的服务账号通过模拟已获授权的用户来访问整个 Google Workspace 网域中的数据。

  1. 在网域的 Google 管理控制台中,依次前往安全性 > 访问权限和数据控件 > API 控件

  2. 全网域授权窗格中,选择管理全网域授权

  3. 点击新增

  4. 客户端 ID 字段中,输入在第一步中创建的服务账号的客户端 ID。

  5. OAuth 范围字段中,输入以下以英文逗号分隔的必需范围列表:

    https://mail.google.com/,
    https://www.googleapis.com/auth/admin.directory.customer.readonly,
    https://www.googleapis.com/auth/admin.directory.domain.readonly,
    https://www.googleapis.com/auth/admin.directory.group,
    https://www.googleapis.com/auth/admin.directory.group.member,
    https://www.googleapis.com/auth/admin.directory.orgunit,
    https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly,
    https://www.googleapis.com/auth/admin.directory.user,
    https://www.googleapis.com/auth/admin.directory.user.alias,
    https://www.googleapis.com/auth/apps.groups.settings,
    https://www.googleapis.com/auth/cloud-platform,
    https://www.googleapis.com/auth/forms.body.readonly,
    https://www.googleapis.com/auth/forms.responses.readonly
    
  6. 点击授权

集成参数

Google 表单集成需要以下参数:

参数 说明
Delegated Email 必需

用于模拟和访问权限控制的电子邮件地址。

Service Account JSON 必需

服务账号密钥 JSON 文件的内容。

Verify SSL 必需

如果选择此项,集成会验证用于连接到 Google 表单的 SSL 证书是否有效。

此选项将会默认选中。

如需了解如何在 Google SecOps 中配置集成,请参阅配置集成

如有需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在剧本中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例

操作

如需详细了解操作,请参阅 在工作台页面中处理待处理的操作执行手动操作

Ping

使用 Ping 操作测试与 Google 表单的连接。

此操作不适用于 Google SecOps 实体。

操作输入

无。

操作输出

Ping 操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
“支持请求墙”表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

Ping 操作可以返回以下输出消息:

输出消息 消息说明
Successfully connected to the Google Forms server with the provided connection parameters! 操作成功。
Failed to connect to the Google Forms server! Error is ERROR_REASON

操作失败。

检查与服务器的连接、输入参数或凭据。

脚本结果

下表列出了使用 Ping 操作时脚本结果输出的值:

脚本结果名称
is_success TrueFalse

连接器

如需详细了解如何在 Google SecOps 中配置连接器,请参阅提取数据(连接器)

Google 表单 - 回答连接器

使用 Google 表单 - 回答连接器从 Google 表单中提取回答。

Google 表单 - 回答连接器需要以下参数:

参数 说明
Product Field Name 必需

存储商品名称的字段的名称。

默认值为 Product Name

Event Field Name 必需

用于确定事件名称(子类型)的字段名称。

默认值为 event_type

Environment Field Name 可选

存储环境名称的字段的名称。

如果找不到环境字段,则将环境设置为默认环境。

默认值为 ""

Environment Regex Pattern 可选

要对 Environment Field Name 字段中找到的值运行的正则表达式模式。此参数可让您使用正则表达式逻辑来操纵环境字段。

使用默认值 .* 可检索所需的原始 Environment Field Name 值。

如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。

Script Timeout (Seconds) 必需

运行当前脚本的 Python 进程的超时时间限制(以秒为单位)。

默认值为 300 秒。

Delegated Email 必需

用于模拟和访问权限控制的电子邮件地址。

Service Account JSON 必需

服务账号密钥 JSON 文件的内容。

Form IDs To Track 必需

要跟踪回答的 Google 表单 ID 的逗号分隔列表。

如需检索表单的唯一 ID,请在表单编辑器(而非公开的回复链接)中打开表单,然后复制浏览器栏中显示的完整地址中位于 /d//edit 之间的字符串。

Alert Severity 可选

要分配给连接器基于提取的 Google 表单回复创建的所有提醒的严重程度。

可能的值如下:

  • Informational
  • Low
  • Medium
  • High
  • Critical

默认值为 Low

Max Hours Backwards 必需

首次连接器迭代之前的小时数,用于检索响应。此参数适用于首次启用连接器后的初始连接器迭代,或适用于已过期的连接器时间戳的回退值。

默认值为 1 小时。

Max Responses To Fetch 必需

每次连接器迭代要处理的响应数量上限。

上限为 100。

Disable Overflow 可选

如果选中此选项,连接器会在创建提醒期间忽略 Google SecOps 溢出机制。

默认情况下未选中。

Verify SSL 必需

如果选择此选项,集成会验证用于连接到 Google 表单的 SSL 证书是否有效。

默认情况下未选中。

Proxy Server Address 可选

要使用的代理服务器的地址。

Proxy Username 可选

用于进行身份验证的代理用户名。

Proxy Password 可选

用于进行身份验证的代理密码。

连接器规则

Google 表单 - 回答连接器支持代理。

连接器事件

以下示例展示了 Google 表单 - 回答连接器生成的 Google SecOps 事件的 JSON 输出:

{
   "responseId": "RESPONSE_ID",
   "createTime": "2024-09-05T11:43:13.892Z",
   "lastSubmittedTime": "2024-09-05T11:43:13.892123Z",
   "event_type": "Question",
   "questionId": "78099fe3",
   "textAnswers": {
       "answers": [
           {
               "value": "Option 1"
           }
       ]
   }
}

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