カスタム インテグレーションを構築する

以下でサポートされています。

このドキュメントでは、商用インテグレーションと同じ構造を使用して、統合開発環境(IDE)内にカスタム インテグレーションを作成する方法について説明します。さまざまな環境のカスタム統合は、Google Security Operations Marketplace で見つけて構成できます。作成したラベルは、ハンドブック、手動アクション、リモート エージェントで使用できます。他の IDE アイテムと同様に、インポートとエクスポートの機能もサポートされています。

IDE でカスタム インテグレーションを作成する

Armis プロダクトのカスタム統合を構築し、Ping アクションとともにマネージャーを作成できます。この手順では、Python とオブジェクト指向プログラミングの知識があることを前提としています。

ユースケース: カスタムの Armis インテグレーションを構築する

IDE でカスタム統合を作成する手順は次のとおりです。

  1. メインメニューで、[レスポンス] > [IDE] に移動します。
  2. [Create New Item] をクリックし、[Integration] を選択します。
  3. 名前を入力して [Create] をクリックします。

統合が [ 設定 ] [設定] オプションに表示され、カスタム統合であることが示されます。

[ settings 設定] をクリックして、アイコン、説明、Python の依存関係、統合パラメータを定義できる統合設定を表示します。

カスタム マネージャーを作成する

マネージャーは、サードパーティ製ツールの 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) 検証するレスポンス
       :param error_msg: (str) 表示するエラー メッセージ
       """
       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 Marketplace の構成、Ping アクション

統合設定で定義されたパラメータは、Google SecOps Marketplace の構成に表示されます。パラメータは次のとおりです。

  • API ルート: 接続するサービスのベース URL。
  • API Secret: サービスでアプリケーションを認証するために使用される機密キー。
  • [SSL を確認] チェックボックス: 有効にすると、Armis サーバーへの接続用の SSL 証明書が有効であることを確認します。
  • [Run Remotely] チェックボックス: コードまたはタスクをローカルではなくリモート サーバーで実行するかどうかを決定する設定。このオプションを有効にすると、必要な指示とデータが処理専用のサーバーに送信されます。

パラメータを更新する手順は次のとおりです。

  1. 正しい認証情報を入力してください。
  2. [保存] > [テスト] をクリックします。

Ping アクションがない場合、[テスト] ボタンが失敗し、赤い X が表示されます。

Ping アクションを実装する

Ping アクションのロジックは、認証が成功したかのように動作します。

Ping アクションを実装する手順は次のとおりです。

  1. IDE で、Ping という名前の Armis 統合に新しいアクションを作成します。
  2. ArmisManager auth メソッドを使用して認証を検証します。

統合を有効にする

統合を有効にする手順は次のとおりです。

  1. [Response > IDE] で、[Enable/Disable] 切り替えを [ON] の位置にクリックします。
  2. [保存] をクリックします。緑色の切り替えボタンは、成功したことを示します。Marketplace の認証情報は ArmisManager に渡されます。auth がエラーなく完了すると、[テスト] ボタンに緑色のチェックマークが表示されます。

extract_configuration_param メソッドを使用して、統合構成からパラメータをインポートします。または、extract_action_param を使用してアクション自体の中でパラメータを定義します。ただし、Ping アクションは、Marketplace でテストされる構成パラメータを常に使用する必要があります。

カスタム統合を表示する

Google SecOps Marketplace に移動し、作成したカスタム統合を検索します。初期構成時にイメージを作成しなかった場合、デフォルトのカスタム イメージが割り当てられます。Google SecOps Marketplace の更新によって、カスタム統合がオーバーライドまたは削除されることはありません。

IDE でのエクスポートとインポート

次のいずれかの操作を行います。

  • 統合をインポートするには、次の操作を行います。
    1. 正しいフォルダ構造の ZIP ファイルをアップロードします。統合が IDE と Google SecOps Marketplace に表示されます。
    2. [インポート] をクリックすると、統合は IDE と Marketplace の両方に表示されます。
    3. システムは、定義、スクリプト、構成を含む ZIP ファイルを生成します。[管理者] フォルダは自動的に含まれません。
  • 統合をエクスポートする手順は次のとおりです。
    • [エクスポート] をクリックしてパッケージをダウンロードします。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。