整合 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」add_2「建立憑證」>「服務帳戶」

  3. 在「服務帳戶詳細資料」下方,於「服務帳戶名稱」欄位中輸入名稱。

  4. 選用:編輯服務帳戶 ID。

  5. 按一下 [完成]

建立 JSON 金鑰

Google SecOps 需要 JSON 金鑰檔案,才能驗證服務帳戶的身分並建立安全連線。

  1. 選取服務帳戶,然後前往「金鑰」

  2. 依序點選「新增金鑰」>「建立新的金鑰」

  3. 金鑰類型請選取「JSON」,然後按一下「建立」。系統會顯示「已將私密金鑰儲存至您的電腦中」對話方塊,並將私密金鑰副本下載到您的電腦。

為專案啟用必要的 API

您必須啟用特定 Google Cloud API,才能讓整合服務與 Google 表單和 Google Workspace 目錄互動。

  1. 在 Google Cloud 控制台中,前往「APIs & Services」(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 動作測試與 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 值。

如果規則運算式模式為空值或空白,或環境值為空值,最終環境結果就是預設環境。

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 伺服器位址。

Proxy Username 選用

用於驗證的 Proxy 使用者名稱。

Proxy Password 選用

用於驗證的 Proxy 密碼。

連接器規則

Google 表單 - 回覆連接器支援 Proxy。

連接器事件

以下範例顯示 Google Forms - Responses Connector 產生的 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 專業人員尋求答案。