建立自訂整合項目

支援的國家/地區:

本文說明如何在整合式開發環境 (IDE) 中建立自訂整合,並使用與商業整合相同的結構。您可以在內容中心找到並設定各種環境的自訂整合。接著,您就能在應對手冊、手動動作和遠端代理程式中使用這些動作。系統也支援匯入及匯出功能,與其他 IDE 項目類似。

在 IDE 中建立自訂整合項目

您可以為 Armis 產品建構自訂整合,並建立管理員和 Ping 動作。本程序假設您已瞭解 Python 和物件導向程式設計。

使用案例:建構自訂 Armis 整合

如要在 IDE 中建立自訂整合,請按照下列步驟操作:

  1. 在主選單中,依序前往「回應」>「IDE」
  2. 按一下「Create New Item」(建立新項目),然後選取「Integration」(整合)
  3. 輸入名稱並按一下 [建立]

整合項目現在會列出「設定」 選項,表示這是自訂整合項目。

依序點選「設定」 「設定」,即可顯示整合設定,您可以在其中定義圖示、說明、Python 依附元件和整合參數。

如果依附元件套件沒有適用於 manylinux_2_17_x86_64 架構的預先編譯 Wheel (.WHL) 檔案,或是您需要特定版本的原始碼,可以提供原始碼的直接網址 (例如 .tar.gz 檔案)。平台的依附元件解析器 uv 支援在 pyproject.toml 檔案的 [tool.uv.sources] 表格中定義這些來源網址。例如:

[project]
# ... other project fields ...

[tool.uv.sources]
# The key (e.g., compressed-rtf) must match the dependency name
compressed-rtf = { url = "https://files.pythonhosted.org/packages/.../compressed_rtf-1.0.6.tar.gz" }
dkimpy = { url = "https://files.pythonhosted.org/packages/.../dkimpy-1.1.8.tar.gz" }

如要進一步瞭解如何使用 uv 定義不同類型的依附元件,請參閱「管理依附元件」一文中的 uv 說明文件。

建立自訂管理員

管理員是第三方工具 API 的包裝函式。雖然這並非必要,但如果整合項目會與外部工具互動,我們建議您使用這些方法。管理員不應從 SDK 匯入。建立後,將其匯入連接器、動作和工作。

如要建立自訂管理員,請按照下列步驟操作:

  1. 在 IDE 中,按一下「Create New Item」(建立新項目),然後選取「Manager」(管理員)
  2. 選取「Armis」整合服務,然後輸入管理員名稱。
  3. 編輯並執行下列指令碼:
import requests


class ArmisManager:
   def init(self, api_root, api_token):
       self.api_root = api_root
       self.api_token - api_token
       self.session = requests.session()
       self.session.headers = {"Accept": "application/json"}


   def auth(self):
       endpoint = "{}/api/vi/access_token/*"
       params = {"secret_key" : self.api_token}
       response = self.session.post(endpoint.format(self.api_root), params=params)
       self.validate_response(response)
       access_token = response.json()["data"]["access_token"]
       self.session.headers.update({"Authorization": access_token})
       return True


   def get_device_by_ip(self, device_ip):
       endpoint = "{}/api/vi/devices/"
       params = {"ip": device_ip}
       response = self.session.get(endpoint.format(self.api_root), params=params)
       self.validate_response(response)
       return response.json()["data"]["data"]


   @staticmethod
   def validate_response(res, error_msg="An error occurred"):
       """Validate a response


       :param res: (requests. Response) The response to validate
       :param error_msg: (str) The error message to display
       """
       try:
           res.raise_for_status()
       except requests.HTTPError as error:
           raise Exception("(error_msg): (error) (text)".format(
               error_msg=error_msg,
               error=error,
               text=error.response.content
           ))

參數、Google SecOps Content Hub 設定和 Ping 動作

整合設定中定義的參數會顯示在 Google SecOps 內容中心設定中。參數包括:

  • API 根目錄:您要連線的服務基準網址。
  • API 密鑰:用於向服務驗證應用程式的機密金鑰。
  • 「驗證 SSL」核取方塊:啟用後,系統會驗證連線至 Armis 伺服器的 SSL 憑證是否有效。
  • 「遠端執行」核取方塊:這項設定可決定程式碼或工作是在遠端伺服器上執行,還是在本機執行。啟用這個選項後,系統會將必要指令和資料傳送至專用伺服器進行處理。

如要更新參數,請按照下列步驟操作:

  1. 請輸入正確的憑證。
  2. 依序點選「儲存」「測試」

如果缺少「Ping」動作,「測試」按鈕會失敗,並顯示紅色「X」

實作 Ping 動作

「Ping」動作的邏輯與驗證成功類似。

如要導入 Ping 動作,請按照下列步驟操作:

  1. 在 IDE 中,於名為 Ping 的 Armis 整合中建立新的「動作」
  2. 使用 ArmisManager auth 方法驗證。

啟用整合功能

如要啟用整合功能,請按照下列步驟操作:

  1. 在「回應」> IDE 中,將「啟用/停用」切換鈕設為「開啟」
  2. 按一下 [儲存]。綠色切換按鈕表示成功。內容中心會將憑證傳遞至 ArmisManager。如果 auth 完成時沒有錯誤,「測試」按鈕會顯示綠色勾號。

使用 extract_configuration_param 方法從整合設定匯入參數。或者,您也可以使用 extract_action_param 在動作本身中定義參數。不過,Ping 動作一律應使用設定參數,因為這些參數會由內容中心測試。

查看自訂整合項目

前往內容中心,搜尋您建立的自訂整合項目。如果未在初始設定期間建立圖片,系統會為其指派預設的自訂圖片。請注意,內容中心更新不會覆寫或刪除任何自訂整合項目。

在 IDE 中匯出及匯入

請執行下列其中一項動作:

  • 如要匯入整合,請按照下列步驟操作:
    1. 上傳資料夾結構正確的 ZIP 檔案,整合功能就會顯示在 IDE 和內容中心。
    2. 按一下 [匯入]。整合功能會顯示在 IDE 和內容中心。
    3. 系統會產生 ZIP 檔案,內含定義、指令碼和設定。系統不會自動加入「管理員」資料夾。
  • 如要匯出整合,請按照下列步驟操作:
    • 按一下「匯出」即可下載檔案包。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。