Google Cloud API

本文提供相關指南,協助您設定Google Cloud API 並與 Google Security Operations SOAR 整合。

整合版本:4.0

將 Google Cloud API 與 Google SecOps SOAR 整合

整合需要下列參數:

參數 說明
Test URL 選用

用於驗證 API 驗證的測試網址。 Google Cloud 這個參數使用 GET 要求。

Service Account Json File Content 選用

服務帳戶金鑰 JSON 檔案的內容。

您可以設定這個參數、Workload Identity Email 參數,或設定所有先前的整合參數。

如要設定這個參數,請提供您在建立服務帳戶時下載的服務帳戶金鑰 JSON 檔案完整內容。

如要進一步瞭解如何使用服務帳戶做為驗證方法,請參閱「服務帳戶總覽」和「服務帳戶模擬」。

在這項整合中,使用服務帳戶金鑰 JSON 檔案進行驗證的優先順序,高於工作負載身分識別電子郵件。

Organization ID 選用

要在整合中使用的機構 ID。

如要在執行動作期間從這個參數擷取值,請設定下列預留位置:{{org_id}}

Project ID 選用

要在整合中使用的專案 ID。

如要在執行動作期間從這個參數擷取值,請設定下列預留位置:{{project_id}}

Quota Project ID 選用

您用於 Google Cloud API 和帳單的專案 ID。 Google Cloud 如要使用這個參數,您必須將 Service Usage Consumer 角色授予服務帳戶。

整合功能會將這個參數值附加至所有 API 要求。

如未設定此參數的值,整合服務會從 Google Cloud 服務帳戶擷取專案 ID。

Workload Identity Email 選用

服務帳戶的用戶端電子郵件地址。

您可以設定這個參數或 Service Account Json File Content 參數。

在這項整合中,使用服務帳戶金鑰 JSON 檔案進行驗證的優先順序,高於工作負載身分識別電子郵件。

如要使用 Workload Identity 模擬服務帳戶,請將 Service Account Token Creator 角色授予服務帳戶。如要進一步瞭解工作負載身分以及如何使用,請參閱「工作負載身分」。

OAuth Scopes 選用

執行 Google Cloud API 要求時必須具備的 OAuth 範圍清單 (以半形逗號分隔)。

Verify SSL 必要

如果選取這個選項,整合服務會驗證連線至 Google Cloud 服務的 SSL 憑證是否有效。

(此為預設選項)。

如需在 Google SecOps 中設定整合功能的操作說明,請參閱「設定整合功能」。

如有需要,您稍後可以變更。設定整合執行個體後,您就可以在劇本中使用該執行個體。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。

動作

如要進一步瞭解動作,請參閱「 從工作台回覆待處理動作」和「執行手動動作」。

執行 HTTP 要求

使用「執行 HTTP 要求」動作,針對目標網址建構及執行自訂 HTTP API 要求。

這項操作不會在 Google SecOps 實體上執行。

動作行為

這項動作支援複雜行為,包括非同步輪詢、動態酬載建構和檔案管理。

非同步輪詢

如果提供 Expected Response Values,動作會以非同步模式運作。在此模式下,動作會重複輪詢目標端點,追蹤回應的狀態 (例如等待長時間執行的工作完成)。

這項動作會根據參數中提供的 JSON 條件評估回應主體,並持續執行,直到符合條件或動作達到逾時時間為止。

條件邏輯

這項動作支援下列邏輯,可追蹤回應狀態:

  • 單一欄位比對:動作會等待特定欄位達到單一值。

    {
      "state": "finished"
    }
    
  • 多個值 (OR 邏輯):如果欄位符合所提供清單中的任何值,動作就會停止執行。這項功能有助於在「成功」和「錯誤」狀態下停止輪詢,避免不必要的輪詢。

    {
      "state": ["finished", "error"]
    }
    
  • 多個欄位 (AND 邏輯):動作會等待所有指定欄位同時符合各自的值。

    {
      "state": "finished",
      "percentage": "100"
    }
    
  • 合併邏輯:您可以在 JSON 物件中合併多個條件。

    {
      "state": ["finished", "error"],
      "percentage": "10"
    }
    
JSON 剖析行為

評估條件時,動作會遵循下列規則:

  • 全域搜尋:這項動作會在整個 JSON 回應物件中搜尋指定的鍵。請提供 JSON 中顯示的金鑰名稱,不要加上父項物件名稱或使用前置字元 (例如使用 "state",而非 "data_state""data-state")。

  • 多個相同鍵:如果回應在 JSON 階層的不同層級中,包含多個名稱相同的鍵,則只有在所有相符的鍵名都符合相同的預期值時,才能達到預期輸出。

    舉例來說,如要在 JSON 回應中搜尋 finished 狀態,並忽略其他狀態,請將 Expected Response Values 中的所有 state 鍵設為 finished

    {
    "data": {
      "state": "finished"
      },
      "state": "finished"
    }
    
建構主體酬載

這項動作會根據 Headers 中提供的 Content-Type 標頭建構要求主體。

這是用於下列建構範例的 Body Payload 輸入內容:

{
  "Id": "123123",
  "sorting": "asc"
}
  • application/x-www-form-urlencoded:這個動作會以 Id=123123&sorting=asc 形式產生酬載。

  • application/json:這項動作會產生下列 JSON 酬載:

    {
      "Id": "123123",
      "sorting": "asc"
    }
    
  • XML:如果第三方產品需要 XML,請直接在 Body Payload 中提供 XML 格式的輸入內容:

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="[http://schemas.xmlsoap.org/soap/envelope/](http://schemas.xmlsoap.org/soap/envelope/)">
    <soap:Body>
      <NumberToWords xmlns="[http://www.dataaccess.com/webservicesserver/](http://www.dataaccess.com/webservicesserver/)">
        <ubiNum>500</ubiNum>
      </NumberToWords>
    </soap:Body>
    </soap:Envelope>
    
檔案處理

這項動作支援下列檔案管理工作流程:

  • 下載檔案

    • 如要以 base64 格式傳回 JSON 結果中的檔案資料,請選取 Base64 Output

    • 如要將檔案直接儲存至案件牆,並封存為 ZIP 檔案,請選取 Save To Case Wall

  • 上傳檔案:如要上傳檔案,請將檔案轉換為 Base64 編碼字串,並將該字串納入 Body Payload 值。

    以下範例顯示轉換為 base64 編碼字串的圖片檔:

    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
    
  • 安全性:如果是惡意軟體等敏感檔案,請選取 Password Protect Zip。這會自動使用密碼 infected 加密以 Save To Case Wall 建立的已儲存 ZIP 封存檔。

應對手冊區塊設定

以下設定示範如何在劇本區塊中使用「執行 HTTP 要求」動作。請參考這個範例,瞭解如何套用預留位置和輸入前置字元。

使用區塊輸入內容做為預留位置時,必須加入 Input. 前置字串 (例如 [Input.comment])。

  • 方法PUT

  • 網址路徑

    https://{API_URL}/[Input.table_name]/[Input.sys_id]
    
  • 標題

    {
      "Content-type": "application/json; charset=utf-8",
      "Accept": "application/json",
      "User-Agent": "GoogleSecops"
    }
    
  • 主體酬載

    {
      "work_notes": "[Input.comment]"
    }
    

動作輸入內容

「執行 HTTP 要求」動作需要下列參數:

參數 說明
Method 選用

要在要求中使用的方法。

預設值為 GET

可能的值包括:
  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • HEAD
  • OPTIONS
URL Path 選用

要執行的網址。

預設值為 https://

URL Params 選用

網址參數。

這項動作會使用您在網址路徑參數中直接提供的值,以及一併提供的任何值。

這個參數需要 JSON 物件格式的輸入內容。預設值如下:

{
    "URL Field Name": "URL_FIELD_VALUE"
    }
Headers 選用

HTTP 要求中使用的標頭。

這個參數需要 JSON 物件格式的輸入內容。預設值如下:

{
    "Content-Type": "application/json; charset=utf-8",
    "Accept": "application/json",
    "User-Agent" : "GoogleSecOps"
    }
Cookie 選用

要在 Cookie 標頭中使用的參數。

這個參數會覆寫 Headers 參數中提供的 Cookie。

這個參數需要 JSON 物件格式的輸入內容。預設值如下:

{
    "Cookie_1": "COOKIE_1_VALUE"
    }
Body Payload
選填

HTTP 要求的主體。這個動作會根據 Headers 參數中提供的 Content-Type 標頭值,建構不同的酬載。

這個參數需要 JSON 物件格式做為輸入內容,但第三方產品需要 XML 或 multipart/form-data 內容時除外。如要使用 API 要求提交或上傳檔案,請在 Body Payload 參數中提供檔案的 base64 編碼版本,並將標頭設為 "Content-type": "multipart/form-data"

預設值如下:

{
    "Body Field Name": "BODY_FIELD_VALUE"
    }
Expected Response Values

選填。

JSON 物件,內含定義回應主體必要狀態的欄位值配對。

Save To Case Wall 選用

如果選取這個選項,系統會儲存檔案,並將儲存的檔案附加至案件總覽。檔案會以 .zip 副檔名封存。.zip 檔案未受密碼保護。

預設為未選取。

Password Protect Zip 選用

選取後,動作會將密碼新增至使用 Save To Case Wall 參數建立的 .zip 檔案。密碼如下:infected

處理可疑檔案時,請使用這個參數。

(此為預設選項)。

Follow Redirects 選用

如果選取這個選項,動作會遵循重新導向。

(此為預設選項)。

Fail on 4xx/5xx 選用

如果選取這個選項,當回應的狀態碼為 4xx 或 5xx 錯誤時,動作就會失敗。

(此為預設選項)。

Base64 Output 選用

如果選取這個動作,系統會將回應轉換為 Base64 格式。

下載檔案時請使用這個參數。

JSON 結果不得超過 15 MB。

預設為未選取。

Fields To Return 必要

要傳回的欄位。可能的值如下:

  • response_data
  • redirects
  • response_code
  • response_cookies
  • response_headers
  • apparent_encoding
Request Timeout 必要

等待伺服器傳送資料的時間,超過這個時間後,動作就會失敗。

預設值為 120 秒。

動作輸出內容

「執行 HTTP 要求」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件總覽表格 無法使用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
JSON 結果

以下範例說明使用「執行 HTTP 要求」動作時收到的 JSON 結果輸出內容:

{
   "response_data": {
       "data": {
           "relationships": {
               "comment": [
                   {
                       "name": "item",
                       "description": "Object to which the comment belongs to."
                   },
                   {
                       "name": "author",
                       "description": "User who wrote the comment."
                   }
               ]
           }
       }
   },
   "redirects": [],
   "response_code": 200,
   "cookies": {},
   "response_headers": {
       "Content-Type": "application/json",
       "X-Cloud-Trace-Context": "VALUE",
       "Date": "Fri, 03 Nov 2023 16:14:13 GMT",
       "Server": "Google Frontend",
       "Content-Length": "36084"
   },
   "apparent_encoding": "ascii"
}
輸出訊息

「執行 HTTP 要求」動作會提供下列輸出訊息:

輸出訊息 訊息說明

Successfully executed API request.

Successfully executed API request, but the status code {4xx/5xx} was returned. Please check the request or try again later.

動作成功。
Failed to execute API request. Error: ERROR_REASON

動作失敗。

檢查伺服器連線、輸入參數或憑證。

指令碼結果

下表說明使用「執行 HTTP 要求」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

連線偵測 (Ping)

使用「Ping」動作測試與「 Google Cloud」的連線。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

無。

動作輸出內容

「Ping」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件總覽表格 無法使用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
JSON 結果

以下範例說明使用「Ping」動作時收到的 JSON 結果輸出內容:

{
"endpoint": "TEST_URL"
}
輸出訊息

「Ping」動作會提供下列輸出訊息:

輸出訊息 訊息說明
Successfully tested connectivity. 動作成功。
Failed to test connectivity.

動作失敗。

檢查伺服器連線、輸入參數或憑證。

指令碼結果

下表說明使用 Ping 動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

需要其他協助嗎?向社群成員和 Google SecOps 專業人員尋求答案。