整合 Google 表單與 Google SecOps
本文說明如何將 Google 表單與 Google Security Operations (Google SecOps) 整合。
事前準備
在 Google SecOps 中設定 Google 表單整合功能之前,請確認 Google Cloud 和 Google Workspace 環境已準備好進行 API 存取和模擬。
為確保整合功能正常運作,必須協調三個元素來管理權限:
服務帳戶:扮演系統之間的橋梁。
委派使用者:服務帳戶模擬的身分,用於存取表單資料。
權限:定義身分可執行操作的範圍和角色。
如果您模擬的使用者已具備必要的管理權限,則不必建立自訂角色。不過,許多組織偏好建立具有自訂角色的專屬服務使用者,以遵循最小權限原則。
請完成下列前置步驟:
- 建立服務帳戶。
- 建立 JSON 金鑰。
- 為專案啟用必要的 API。
- 選用:建立整合專用的自訂角色。
- 選用:將自訂角色指派給使用者。
- 將網域層級的權限委派給服務帳戶。
建立服務帳戶
服務帳戶代表非人類使用者,可讓整合項目安全地通過驗證並取得授權,進而存取您的資料。
前往 Google Cloud 控制台的「Credentials」(憑證) 頁面。
依序選取「add_2 建立憑證」>「服務帳戶」。
在「Service account details」(服務帳戶詳細資料) 下方的「Service account name」(服務帳戶名稱) 欄位中輸入名稱。
選用:編輯服務帳戶 ID。
按一下「完成」。
建立 JSON 金鑰
Google SecOps 需要 JSON 金鑰檔案,才能證明服務帳戶的身分並建立安全連線。
選取服務帳戶,然後前往「金鑰」。
依序點選「新增金鑰」>「建立新的金鑰」。
選取「JSON」做為金鑰類型,然後按一下「建立」。系統會顯示「Private key saved to your computer」(私密金鑰已儲存至您的電腦) 對話方塊,並將私密金鑰副本下載到您的電腦。
為專案啟用必要的 API
您必須啟用特定 Google Cloud API,整合功能才能與 Google 表單和 Google Workspace 目錄互動。
在 Google Cloud 控制台中,前往「APIs & Services」(API 與服務)。
按一下「add」「Enable APIs and Services」(啟用 API 和服務)。
為專案啟用下列 API:
Admin SDK API
Google Forms API
選用:為整合作業建立自訂角色
如果您用於模擬的使用者帳戶尚未具備必要的管理權限,可以建立權限有限的自訂角色。使用者必須具備下列項目的 Admin API 權限,才能進行整合:
組織單位
使用者
網路論壇
在 Google 管理控制台中,依序前往「帳戶 > 管理員角色」。
選取「建立新角色」。
輸入新自訂角色的名稱,然後按一下「Continue」(繼續)。
在「選取權限」中,找到「Admin API 權限」部分。
勾選「組織單位」、「使用者」和「群組」核取方塊。
依序點選「繼續」>「建立角色」。
選用:將自訂角色指派給使用者
如果您在前一個步驟中建立了自訂角色,現在必須將該角色指派給用於模擬的特定電子郵件地址。
在 Google 管理控制台中,依序前往「目錄」 > 「使用者」。
選取要用於整合的使用者 (現有管理員或新的專屬使用者)。
開啟使用者的設定,然後依序按一下 「管理員角色與權限」 > 「編輯」圖示。
選取您建立的自訂角色,然後將切換鈕切換至「已指派」。
按一下 [儲存]。
將全網域授權委派給服務帳戶
全網域委派功能可讓服務帳戶模擬授權使用者,存取整個 Google Workspace 網域的資料。
在網域的 Google 管理控制台中,依序前往 「Security」(安全性) >「Access and data control」(存取權與資料控管) >「API controls」(API 控制項)。
在「Domain wide delegation」(全網域委派) 窗格中,選取「Manage Domain Wide Delegation」(管理全網域委派設定)。
按一下「新增」。
在「Client ID」(用戶端 ID) 欄位中,輸入在第一個步驟中建立的服務帳戶用戶端 ID。
在「OAuth Scopes」(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按一下 [授權]。
整合參數
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 |
True或False |
連接器
如要進一步瞭解如何在 Google SecOps 中設定連接器,請參閱「擷取資料 (連接器)」。
Google 表單 - 回覆連接器
使用 Google 表單 - 回覆連接器,從 Google 表單提取回覆。
Google 表單 - 回覆連接器需要下列參數:
| 參數 | 說明 |
|---|---|
Product Field Name |
必要 儲存產品名稱的欄位名稱。 預設值為 |
Event Field Name |
必要 用於判斷事件名稱 (子類型) 的欄位名稱。 預設值為 |
Environment Field Name |
選用
儲存環境名稱的欄位名稱。 如果找不到環境欄位,系統會將環境設為預設環境。 預設值為 |
Environment Regex Pattern |
選用
規則運算式模式,用於對 使用預設值 如果規則運算式模式為空值或空白,或環境值為空值,則最終環境結果為預設環境。 |
Script Timeout (Seconds) |
必要 執行目前指令碼的 Python 程序逾時限制 (以秒為單位)。 預設值為 300 秒。 |
Delegated Email |
必要 用於模擬和存取控管的電子郵件地址。 |
Service Account JSON |
必要 服務帳戶金鑰 JSON 檔案的內容。 |
Form IDs To Track |
必要 以半形逗號分隔的 Google 表單 ID 清單,用於追蹤回覆。 如要擷取表單的專屬 ID,請在表單編輯器中開啟表單 (而非公開回覆連結),然後複製瀏覽器網址列中完整網址內 |
Alert Severity |
選用 連接器根據擷取的 Google 表單回覆建立的所有快訊,都會指派這個嚴重性等級。 可能的值如下:
預設值為 |
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 表單 – 回覆連接器產生的 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 專業人員尋求解答。