GitSync

GitSync は、Google SecOps 用に構築されたインテグレーションで、セキュリティ自動化アセットとコンポーネントを外部 Git リポジトリ(GitHub、GitLab、Bitbucket など)と同期します。コンテンツの双方向同期を容易にし、セキュリティ運用ライフサイクル全体で自動バージョン管理、構成バックアップ、クロス環境プロモーションを実現します。GitSync は、内部データベース識別子が競合する可能性のある、関連性のないシステム間でアセットを配布するのではなく、関連する環境(開発、ステージング、本番環境など)間でアセットをバックアップして移行するように設計されています。

ユースケース

GitSync 統合は、次の主なユースケースをサポートしています。

  • バージョン管理と監査可能性(Security as Code): 変更を追跡し、差分を確認して、ハンドブック、コネクタ、統合、システム設定にわたる変更の完全な変更履歴を維持します。

  • マルチ環境プロモーション(CI / CD パイプライン): pull リクエストとブランチ マージを使用して、開発環境とステージング環境から本番環境に、ハンドブック、オントロジー マッピング、統合設定を体系的にプロモートします。

  • バックアップと障害復旧: 誤って削除、破損、または構成ミスが発生したハンドブックとプラットフォーム構成を、Git リポジトリから直接復元します。

  • 環境間の標準化: 標準化されたハンドブック、カスタム ビジュアル ファミリー、コネクタ定義を、一元化されたリポジトリから関連する Google SecOps 環境に配布します。

  • ブランチとステージングの分離: 本番環境のワークフローやスケジュールに影響を与えることなく、専用の環境で試験運用版のハンドブックと機能ブランチをテストします。

  • オフライン レビューとコラボレーション: プラットフォーム定義を JSON と Markdown としてエクスポートし、標準のデベロッパー ツールでピアレビュー、自動検証、検査を可能にします。

  • 再利用可能なワークフロー ブロック: モジュラー ワークフロー ブロックを、完全なハンドブックと並行して、または個別に同期して、チームが共通の自動化ステップを共有できるようにします。

目標別の実装ワークフロー

現在の目的に合ったガイダンスに直接移動するには、ワークフローを選択します。

  • 新しい GitSync デプロイまたは新しいブランチ: GitSync 統合を初めて構成する場合、または新しいリポジトリ ブランチを作成する場合は、次のエンドツーエンドの設定手順に沿って操作します。

    1. 前提条件と認証情報の設定を完了します。
    2. 共有統合インスタンスを構成する。
    3. Ping アクションを使用して、ネットワーク接続と認証をテストします。
    4. pull ジョブを実行する前に、最初のコンテンツの push ジョブを実行してブランチにデータを入力します。
    5. 自動同期ジョブを構成してスケジュール設定します。
  • ジョブとリポジトリのリファレンス:

    • 構成パラメータを表示し、特定のアセット(ハンドブック、コネクタ、統合など)に対してスタンドアロンの push ジョブまたは pull ジョブを実行するには、ジョブをご覧ください。
    • 標準のリポジトリ レイアウトを表示するには、リポジトリのディレクトリ構造をご覧ください。
  • 同期の問題をトラブルシューティングする: アクションまたはジョブがエラーで失敗した場合は、トラブルシューティングをご覧ください。

始める前に

GitSync オペレーションを構成して実行する前に、統合バージョンを確認し、リポジトリへのアクセス権を取得して、次の設定タスクを完了します。

  • 書き込みアクセス権を持つプライベート Git リポジトリを使用する: サポートされている Git プロバイダ(GitHub、GitLab、Bitbucket など)でホストされているプライベート Git リポジトリへの書き込み権限があることを確認します。Commit Passwords が有効になっていない限り、Password タイプのパラメータはデフォルトで除外されますが、他のすべてのパラメータ(アプリケーション ID、クライアント ID、ユーザー名、エンドポイントなど)は、平文でエクスポートされます。GitSync で公開リポジトリを使用しないでください。

  • リモート リポジトリを初期化する: リモート リポジトリに少なくとも 1 つの初期 commit(README.md ファイルや .gitignore ファイルなど)があることを確認します。GitSync は空のリポジトリに同期できません。

  • Git 認証情報を準備する: リポジトリの書き込み権限を持つ認証情報を生成します。GitSync は、base64 でエンコードされた SSH 秘密鍵(推奨)、個人用アクセス トークン(PAT)、基本的なユーザー名とパスワードの認証情報をサポートしています。

    SSH 認証鍵を生成してエンコードするには、GitSync の SSH 認証鍵を生成するをご覧ください。

  • ネットワーク接続と VPC Service Controls を確認する: Google SecOps インスタンスまたはリモート ランナーが、TCP ポート 443(HTTPS 用)または TCP ポート 22(SSH 用)で Git プロバイダへのアウトバウンド ファイアウォール アクセス権を持っていることを確認します。

    Google Cloud 環境で VPC Service Controls サービス境界を使用している場合は、 Google Cloud 管理者と協力して上り(内向き)ルールと下り(外向き)ルールを構成し、レスポンス統合が必要な Google Cloud API と外部エンドポイントと通信できるようにします。

  • Git ホストのフィンガープリントを取得する(推奨): 中間者(PITM)攻撃から保護するには、ホストのフィンガープリントを固定するために、Git サーバーの公開鍵のフィンガープリントを取得します。

    構成手順については、ホスト フィンガープリントの固定を有効にするをご覧ください。

  • ハンドブックの編集権限を付与する: デフォルトのアクセス権が制限されているハンドブック(デフォルトの権限が [閲覧可能] に設定されているなど)を同期する場合は、同期ジョブを実行する前に、ソースシステムで Administrator SOC ロールに [編集可能] 権限を付与します。

    詳しい手順については、ハンドブックの権限を構成するをご覧ください。

GitSync の SSH 認証鍵を生成する

SSH 認証鍵を使用して安全なパスワードなしの認証を構成するには:

  1. ターミナルで RSA または Ed25519 鍵ペアを生成します。パスフレーズの入力を求められたら、Enter キーを押して空白のままにします。

    ssh-keygen -b 2048 -t rsa -f ./id_rsa
    

    このコマンドにより、id_rsa(秘密鍵)と id_rsa.pub(公開鍵)の 2 つのファイルが作成されます。

  2. 公開鍵(id_rsa.pub)を、書き込み権限を持つデプロイキーまたはアクセスキーとしてリモート Git ホスティング サービスに追加します。

  3. 秘密鍵を 1 行の base64 でエンコードされた文字列に変換します。

    • Linux / macOS:

      base64 -w 0 ./id_rsa
      
    • Windows(PowerShell):

      [Convert]::ToBase64String([System.IO.File]::ReadAllBytes(".\id_rsa"))
      
  4. 生成された base64 文字列をコピーし、GitSync 統合インスタンスを構成するときに [Git Password/Token/SSH 認証鍵] パラメータに貼り付けます。

ホスト フィンガープリントの固定を有効にする

ホスト フィンガープリントの固定は、接続時に Git サーバーの ID を検証して、中間者(PITM)攻撃から保護します。Git サーバーのフィンガープリント パラメータは省略可能ですが、これを構成すると、GitSync が検証済みの Git ホストにのみ接続するようになります。

ホスト フィンガープリントの固定を構成するには:

  1. ホストのフィンガープリントを取得する: ターミナルで Git サーバーのホスト名に対して ssh-keyscan を実行します。

    ssh-keyscan -t rsa <hostname>
    

    たとえば、GitHub の場合は ssh-keyscan -t rsa github.com を実行します。このコマンドは、次のような公開ホストキー行を出力します。

    github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC...
    
  2. 構成用のフィンガープリントを保存する: 公開ホストキーの行をコピーします。GitSync 統合インスタンスを構成するとき(すべてのジョブに適用する場合)または個々の同期ジョブ(特定のホストの設定をオーバーライドする場合)で、この値を Git Server Fingerprint パラメータに入力します。

ハンドブックの権限を構成

制限付きの権限(デフォルトの権限が [閲覧可能] に設定されているなど)を持つハンドブックを同期する場合は、Administrator SOC ロールに [編集可能] 権限を割り当てます。

  1. Google SecOps で [Playbooks] に移動し、ターゲット ハンドブックを選択します。
  2. ハンドブックの権限設定を開きます。
  3. エンティティのリストに Administrator SOC ロールを追加し、権限を [編集可能] に設定します。

バージョン 53.0 のロールバック

GitSync バージョン 53.0 で Chronicle API の変更と JSON エクスポート スキーマの変更が導入され、同期エラーが発生しました。これらの問題を解決するため、GitSync のバージョン 54.0 では、バージョン 53.0 の変更が元に戻され、安定版のバージョン 52.0 のコードベースが復元されています。

バージョン 52.0 またはバージョン 54.0 に移行して、互換性のあるリポジトリ ブランチを復元する手順は次のとおりです。

  1. スケジュールされた同期ジョブを一時停止する: アクティブなスケジュールされた GitSync ジョブ(コンテンツを push する、コンテンツを pull するなど)を無効にして、バージョンとブランチの切り替え中にジョブが実行されないようにします。

  2. バージョン 54.0 に切り替えるか、バージョン 52.0 にロールバックする: Content Hub で、GitSync 統合を見つけます。

    • バージョン 54.0 が利用可能な場合は、統合をバージョン 54.0 にアップグレードします。
    • バージョン 54.0 がまだ表示されていない場合(Content Hub のキャッシュは約 8 時間ごとに同期されます)、または直接ダウングレードする場合は、統合バージョンをバージョン 52.0 にロールバックします。
  3. GitSync を以前のリポジトリ ブランチにポイントする: バージョン 53.0 を使用して入力されたリポジトリ ブランチは、バージョン 52.0 または 54.0 と互換性のない別の JSON スキーマを使用します。

    • バージョン 53.0 用に別のブランチを作成した場合(例: gitsync-chronicle-api): [設定] > [統合] > [GitSync] に移動し、[ブランチ] パラメータを元のブランチ(例: main)に戻し、[Ping] アクションを実行して接続を確認します。
    • バージョン 53.0 で既存のブランチを上書きした場合: backup-legacy-pre-migration Git タグ(または v53 より前の最後の commit)からブランチを復元するか、バージョン 53.0 でエクスポートされたディレクトリ(Playbooks/、Connectors/、Integrations/、Jobs/、Ontology/、SimulatedCases/、Settings/)を削除し、バージョン 52.0 または 54.0 から完全な Push Content ジョブを実行してブランチを再入力します。
  4. スケジュール設定されたジョブを再開する: ブランチにバージョン 52.0 または 54.0 でエクスポートされた構成が含まれていることを確認したら、スケジュール設定された GitSync ジョブを再度有効にします。

統合を構成する

すべてのプラットフォーム コンポーネントとスケジュール設定されたジョブがリポジトリ構成にアクセスできるように、Google SecOps で GitSync 統合を共有インスタンスとして構成します。

GitSync 統合パラメータ

パラメータ 説明
Repo URL

必須。

リモートの Git リポジトリの URL。

HTTPS 認証を使用する場合、URL は https:// で始まる必要があります(例: https://github.com/organization/secops-platform.git)。

SSH 認証を使用する場合、URL は git@ または ssh:// で始まる必要があります(例: git@github.com:organization/secops-platform.git)。

Branch

必須。

同期する Git リポジトリ ブランチ(例: main)。

Git Password/Token/SSH Key

必須。

リモート Git リポジトリの認証情報。

このパラメータには、Git アカウントのパスワード、個人アクセス トークン(PAT)、または Base64 でエンコードされた SSH 秘密鍵(RSA 2048 ビットまたは Ed25519)を指定できます。

Git Username

省略可。

Git アカウントのユーザー名。

HTTPS 経由でユーザー名とパスワードによる認証を使用する場合に必要です。

Git Server Fingerprint

省略可。

リモート Git サーバーの SSH 公開ホスト鍵(例: github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC...)。

このパラメータを構成すると、ホスト フィンガープリントのピン留めが有効になり、GitSync が検証済みの Git ホストにのみ接続されるようになり、中間者(PITM)攻撃のリスクが軽減されます。

この値を取得するには、ホスト フィンガープリントの固定を有効にするをご覧ください。

Commit Author

省略可。

GitSync によって生成された送信 Git commit に関連付けられた作成者 ID。

形式は、標準の Git 作成者(Name &lt;email@domain.com&gt;)に従う必要があります(デフォルトは GitSync &lt;gitsync@siemplify.co&gt;)。

Siemplify Verify SSL

必須。

選択すると、統合によって Google SecOps API エンドポイントの SSL 証明書が検証されます。

デフォルトで有効になっています。

Git Verify SSL

必須。

選択すると、統合によってリモート Git プロバイダ サーバーの SSL 証明書が検証されます。

デフォルトで有効になっています。

SOAR Username

省略可。

ハンドブックの編集権限を持つアカウントの Google SecOps ユーザー名。

権限の制限によりデフォルトの API キーが失敗する場合は、このパラメータを指定します。

SOAR Password

省略可。

構成された SOAR Username に対応するパスワード。

操作

アクションの詳細については、 デスクから保留中のアクションに対応するとケースで手動アクションを実行するをご覧ください。

Ping

Ping アクションを使用して、ネットワーク接続をテストし、構成された Git リポジトリとブランチに対して認証情報を検証します。

アクションへの入力

なし

アクションの出力

Ping アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

Ping アクションは、次の出力メッセージを返すことができます。

出力メッセージ メッセージの説明
Successfully executed action "Ping". アクションが成功し、リポジトリの接続性が確認されました。
Error executing action "Ping". Reason: ERROR_REASON アクションが失敗しました。リポジトリの URL、ブランチ名、認証情報、ネットワーク ルートを確認してください。
スクリプトの結果

次の表に、Ping アクションを使用した場合のスクリプト結果の値を示します。

スクリプトの結果名 値
is_success true または false

ジョブ

GitSync には、プラットフォーム アセットを管理するための 16 個の同期ジョブ構成(2 個のフルインスタンス ジョブと 7 個のスタンドアロン ジョブペア)が用意されています。これらのジョブは、インスタンス レベル全体とターゲットを絞ったスタンドアロン同期スコープをサポートします。

同期スコープとサポートされているアセット

この統合では、さまざまな管理と自動化のニーズに対応するため、同期ジョブを 2 つの異なる運用スコープに整理します。

  • インスタンス全体の同期(Push Content と Pull Content): Google SecOps プラットフォーム全体を 1 回の一括オペレーションで同期します。

    これには、3 つの機能領域にわたる 21 のプラットフォーム アセット カテゴリが含まれます。

    • システムと環境の構成: 環境、ドメイン、動的パラメータ、カスタムリスト、ネットワーク、ブラックリスト(拒否リスト)、ケースタイトルの設定、メール テンプレート、ロゴ。

    • アラートとケースの管理: ケースタグ、ケースステージ、ケースのクローズ理由、SLA レコード、シミュレートされたケース。

    • セキュリティの自動化と統合: ハンドブック(再利用可能なワークフロー ブロックを含む)、統合、統合インスタンス、コネクタ、スケジュール設定されたジョブ、オントロジー マッピング、ビジュアル ファミリー。

  • アセットのきめ細かい同期(スタンドアロンの push ジョブと pull ジョブ):

    7 つの特定のアセットに専用の push ジョブと pull ジョブのペアを提供します。スタンドアロン ジョブは、環境の残りの部分を同期または上書きせずに、個々のコンポーネントを開発、更新、テストする場合に使用します。

    • ハンドブックとワークフロー ブロック: Push Playbook と Pull Playbook

    • コネクタ: Push Connectors と Pull Connector

    • インテグレーション: Push Integration、Pull Integration

    • スケジュール ジョブ: Push Job と Pull Jobs

    • オントロジー マッピング: Push Mappings、Pull Mappings

    • カスタム ビジュアル ファミリー: Push Custom Family、Pull Custom Family

    • シミュレートされたテストケース: Push Simulated Cases、Pull Simulated Cases

リポジトリのディレクトリ構造

最初のコンテンツを push ジョブを実行すると(新しいブランチまたは移行されたブランチで pull ジョブを実行する前に必要)、次の事前定義されたディレクトリ構造、JSON 構成ファイル、ルート GitSync.json メタデータ ファイル、生成された README.md ドキュメントがリモート Git リポジトリに作成されます。

├── Connectors/
│   └── <Integration_Name>/
│       └── <Connector_Name>/
│           ├── <Connector_Name>.json
│           └── README.md
├── Integrations/
│   └── <Integration_Identifier>/
│       ├── Actions/
│       ├── Connectors/
│       ├── Dependencies/
│       ├── Jobs/
│       ├── Managers/
│       ├── Resources/
│       ├── Integration-<Integration_Identifier>.def
│       └── README.md
├── Jobs/
│   ├── <Job_Name>.json
│   └── README.md
├── Ontology/
│   ├── Mappings/
│   │   └── <Source_Name>/
│   │       ├── <Source_Name>_Records.json
│   │       ├── <Source_Name>_Rules.json
│   │       └── README.md
│   └── VisualFamilies/
│       └── <Family_Name>/
│           ├── <Family_Name>.json
│           ├── <Family_Name>.png
│           └── README.md
├── Playbooks/
│   ├── README.md
│   └── <Folder_Name>/
│       └── <Playbook_Or_Block_Name>/
│           ├── <Playbook_Or_Block_Name>.json
│           └── README.md
├── Settings/
│   ├── blacklists.json
│   ├── caseCloseCauses.json
│   ├── caseTitles.json
│   ├── customLists.json
│   ├── domains.json
│   ├── dynamicParameters.json
│   ├── emailTemplates.json
│   ├── environments.json
│   ├── integrationInstances.json
│   ├── logo.json
│   ├── networks.json
│   ├── slaDefinitions.json
│   ├── stages.json
│   └── tags.json
├── SimulatedCases/
│   └── <Case_Name>.case
├── GitSync.json
└── README.md

インスタンス レベルの同期ジョブ

インスタンス レベルのジョブは、選択したアセット カテゴリを Google SecOps インスタンス全体で同期します。

プッシュ コンテンツ

[Push Content] ジョブを使用して、選択したアセット カテゴリを Google SecOps インスタンスからエクスポートし、構成済みの Git リポジトリ ブランチに commit します。新しいブランチを初期化するときは、必ず最初に Push Content を実行します。

ジョブの入力

Push Content ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Commit

必須。

エクスポートされたコンテンツの変更を説明する Git commit メッセージ。

Commit Passwords

省略可。

選択すると、構成済みの統合インスタンス、コネクタ、ジョブの平文の Password タイプのパラメータがエクスポートされます。

アセット選択パラメータ:
Integrations、Playbooks、Jobs、 Connectors、Simulated Cases、Integration Instances、 Visual Families、Mappings、Environments、 Dynamic Parameters、Logo、Case Tags、 Case Stages、Case Title Settings、Case Close Reasons、 Networks、Domains、Custom Lists、 Email Templates、Blacklists、SLA Records

省略可(ブール値の切り替え)。

エクスポートに含める各アセット カテゴリを選択します。

Repo URL

省略可。

統合インスタンスで構成されたリポジトリ URL をオーバーライドします。

Branch

省略可。

統合インスタンスで構成されたリポジトリ ブランチをオーバーライドします。

Commit Author

省略可。

統合インスタンスで構成された commit 作成者をオーバーライドします。Name &lt;email@domain.com&gt; 形式を使用する必要があります。

Git Server Fingerprint

省略可。

統合インスタンスで構成された SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

このジョブは、JSON 構成ファイルと README.md の概要を、標準のディレクトリ階層(/Playbooks、/Connectors、/Integrations、/Jobs、/Ontology/Mappings、/Ontology/VisualFamilies、/SimulatedCases、/Settings)の下にあるターゲット Git ブランチに書き込み、実行ログをジョブランナー コンソールに出力します。カスタム統合は完全なパッケージとしてエクスポートされますが、商用統合では、統合に追加されたカスタム スクリプトまたは変更のみがエクスポートされます。

コンテンツをプルする

Pull Content ジョブを使用して、構成済みの Git リポジトリ ブランチから選択した構成カテゴリを取得し、Google SecOps プラットフォームに適用します。

ジョブの入力

Pull Content ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
アセット選択パラメータ:
Integrations、Playbooks、Jobs、 Connectors、Simulated Cases、Integration Instances、 Visual Families、Mappings、Environments、 Dynamic Parameters、Logo、Case Tags、 Case Stages、Case Title Settings、Case Close Reasons、 Networks、Domains、Custom Lists、 Email Templates、Blacklists、SLA Records

省略可(ブール値の切り替え)。

リポジトリから環境にインポートする各アセット カテゴリを選択します。

Repo URL

省略可。

統合インスタンスで構成されたリポジトリ URL をオーバーライドします。

Branch

省略可。

統合インスタンスで構成されたリポジトリ ブランチをオーバーライドします。

Git Server Fingerprint

省略可。

統合インスタンスで構成された SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

このジョブは、選択したリポジトリ定義をプラットフォームにインポートし、統合インスタンス、ハンドブック、コネクタ、ジョブ、オントロジー マッピング、設定を作成または更新し、実行ログをジョブランナー コンソールに出力します。

スタンドアロン同期ジョブ

スタンドアロン ジョブを使用すると、リポジトリ全体の同期を必要とせずに、特定のアセットをきめ細かく同期できます。

プッシュ ハンドブック

Push Playbook ジョブを使用して、個々のハンドブックまたは再利用可能なワークフロー ブロックを Git にエクスポートします。

ジョブの入力

Push Playbook ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Commit

必須。

ハンドブックの変更を説明する Git commit メッセージ。

Playbook Whitelist

省略可。

エクスポートするプレイブック名またはブロック名を、大文字小文字を区別してカンマで区切ったリスト。 Playbook Whitelist または Folders Whitelist を指定します。

Folders Whitelist

省略可。

ハンドブック フォルダ(カテゴリ)名のカンマ区切りのリスト。これらのフォルダ内にあるすべてのハンドブックとブロックがエクスポートされます。

Include Playbook Blocks

省略可。

選択すると、選択したハンドブックとともに、再利用可能なワークフロー ブロックがエクスポートされます。これには、それらのハンドブック内のステップとして参照されているブロックも含まれます。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Commit Author

省略可。

デフォルトの commit 作成者をオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

Readme Addon

省略可。

この実行で push されたすべてのハンドブックに対して生成された README.md に追加され、ルート GitSync.json メタデータ ファイルに保存されるカスタム コンテンツ。

マークダウン構文と Jinja テンプレートの両方をサポートしています。

ジョブ出力

選択したハンドブックと含まれているワークフロー ブロックを /Playbooks/<Folder_Name>/<Playbook_Name>/ にエクスポートし、/Playbooks/README.md を更新します。

ハンドブックをプルする

Pull Playbook ジョブを使用して、Git から特定のハンドブックまたはブロックをインポートします。

ジョブの入力

Pull Playbook ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Playbook Whitelist

必須。

リポジトリからインポートする正確なハンドブック名またはブロック名のカンマ区切りのリスト。

Include Playbook Blocks

省略可。

選択すると、選択したハンドブックで参照されている再利用可能なワークフロー ブロックが自動的にインポートされます。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

指定されたハンドブックとブロックを /Playbooks(または /Blocks)からプラットフォームにインポートします。親ハンドブックをインストールする前に、参照されているブロックをインストールします。

プッシュ コネクタ

Push Connectors ジョブを使用して、コネクタ構成を Git にエクスポートします。

ジョブの入力

Push Connectors ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Connectors

必須。

エクスポートするコネクタの表示名のカンマ区切りのリスト。

Commit

必須。

Git commit メッセージ。

Include Mappings

省略可。

選択すると、コネクタの統合に関連付けられているオントロジー マッピング レコードとルールを /Ontology/Mappings にエクスポートします。

Include Visual Families

省略可。

選択すると、コネクタのオントロジー レコードに関連付けられているカスタム ビジュアル ファミリーを /Ontology/VisualFamilies にエクスポートします。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Commit Author

省略可。

デフォルトの commit 作成者をオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

Readme Addon

省略可。

この実行で push され、GitSync.json に保存されたすべてのコネクタに対して生成された README.md に追加されるカスタム コンテンツ。

マークダウン構文と Jinja テンプレートの両方をサポートしています。

ジョブ出力

コネクタの設定とスケジュールを /Connectors/<Integration_Name>/<Connector_Name>/ にエクスポートします(選択されている場合は、関連するオントロジー マッピングとビジュアル ファミリーもエクスポートされます)。

Pull Connector

Pull Connector ジョブを使用して、Git からコネクタ構成をインポートします。このジョブを実行する前に、コネクタの基盤となる統合がターゲット環境にインストールされていることを確認してください。

ジョブの入力

Pull Connector ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Connector Name

必須。

リポジトリからインポートするコネクタの表示名。

Include Mappings

省略可。

選択すると、コネクタの統合に関連付けられているオントロジー マッピングがインポートされます。

Include Visual Families

省略可。

選択すると、コネクタの統合に関連付けられているカスタム ビジュアル ファミリーがインポートされます。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

ターゲット環境にコネクタをインストールまたは更新します(選択されている場合は、関連するマッピングまたはビジュアル ファミリーもインストールまたは更新されます)。

プッシュ統合

[Push Integration] ジョブを使用して、商用統合に追加されたカスタム統合またはカスタム スクリプトを Git にエクスポートします。カスタム統合は完全な統合パッケージとしてエクスポートされますが、商用統合では、統合に追加されたカスタム スクリプトまたは変更のみがエクスポートされます。

ジョブの入力

Push Integration ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Push Whitelist

必須。

エクスポートする統合識別子のカンマ区切りのリスト。

Commit

必須。

Git commit メッセージ。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Commit Author

省略可。

デフォルトの commit 作成者をオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

Readme Addon

省略可。

この実行で push され、GitSync.json に保存されたすべての統合に対して生成された README.md に追加されたカスタム コンテンツ。

マークダウン構文と Jinja テンプレートの両方をサポートしています。

ジョブ出力

統合定義、カスタム スクリプト(Actions/、Connectors/、Jobs/、Managers/)、依存関係、README.md ドキュメントを /Integrations/<Integration_Identifier>/ にエクスポートします。

プル統合

Pull Integration ジョブを使用して、カスタム統合または商用統合用のカスタム スクリプトを Git からインポートします。商用統合の場合、GitSync は Content Hub から最新バージョンの統合をインストールし、カスタム スクリプトを保存します。

ジョブの入力

Pull Integration ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Install Whitelist

必須。

リポジトリからインポートする統合 ID のカンマ区切りのリスト。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

カスタム統合パッケージをインストールするか、Content Hub から商用統合をインストールして、ターゲット環境でカスタム スクリプトを更新します。

push ジョブ

Push Job ジョブを使用して、スケジュールされたプラットフォーム ジョブ構成を Git にエクスポートします。

ジョブの入力

Push Job ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Job Whitelist

必須。

エクスポートするスケジュール設定されたジョブ名のカンマ区切りのリスト。

Commit

必須。

Git commit メッセージ。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Commit Author

省略可。

デフォルトの commit 作成者をオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

Readme Addon

省略可。

この実行で push され、GitSync.json に保存されたすべてのジョブに対して生成された README.md に追加されるカスタム コンテンツ。

マークダウン構文と Jinja テンプレートの両方をサポートしています。

ジョブ出力

ジョブ パラメータとスケジュール間隔を /Jobs/<Job_Name>.json にエクスポートし、/Jobs/README.md を更新します。

pull ジョブ

Pull Jobs ジョブを使用して、スケジュールされたプラットフォーム ジョブを Git からインポートします。

ジョブの入力

Pull Jobs ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Job Whitelist

必須。

リポジトリからインポートするスケジュール設定されたジョブ名のカンマ区切りのリスト。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

指定されたスケジュール ジョブを構成し、プラットフォーム ジョブ スケジューラに登録します。

プッシュ マッピング

Push Mappings ジョブを使用して、特定のソースのオントロジー イベント マッピング レコードとルールを Git にエクスポートします。

ジョブの入力

Push Mappings ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Source

必須。

マッピング レコードとルールをエクスポートするオントロジー ソース(統合名)。

Commit

必須。

Git commit メッセージ。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Commit Author

省略可。

デフォルトの commit 作成者をオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

Readme Addon

省略可。

この実行で push され、GitSync.json に保存されたすべてのマッピングの生成された README.md に追加されたカスタム コンテンツ。

マークダウン構文と Jinja テンプレートの両方をサポートしています。

ジョブ出力

オントロジー レコード(<Source>_Records.json)、マッピング ルール(<Source>_Rules.json)、README.md を /Ontology/Mappings/<Source>/ に書き込みます。

マッピングを pull する

Pull Mappings ジョブを使用して、特定のソースのオントロジー マッピング レコードとルールを Git からインポートします。

ジョブの入力

Pull Mappings ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Source

必須。

マッピング レコードとルールをインポートするオントロジー ソース(統合名)。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

プラットフォームのオントロジー設定にオントロジー マッピング ルールとビジュアル ファミリーの割り当てを登録します。対応するイベントが取り込まれると、マッピングが [Ontology Status] テーブルに表示されます。

カスタム ファミリーをプッシュする

Push Custom Family ジョブを使用して、カスタム ビジュアル ファミリーの定義とアイコンを Git にエクスポートします。

ジョブの入力

Push Custom Family ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Family Name

必須。

エクスポートするカスタム ビジュアル ファミリー名のカンマ区切りのリスト。

Commit

必須。

Git commit メッセージ。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Commit Author

省略可。

デフォルトの commit 作成者をオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

Readme Addon

省略可。

この実行で push され、GitSync.json に保存されたすべてのカスタム ビジュアル ファミリーの生成された README.md に追加されたカスタム コンテンツ。

マークダウン構文と Jinja テンプレートの両方をサポートしています。

ジョブ出力

ビジュアル ファミリー定義(<Family_Name>.json)、アイコン画像ファイル(<Family_Name>.png)、README.md を /Ontology/VisualFamilies/<Family_Name>/ にエクスポートします。

カスタム ファミリーを pull する

Pull Custom Family ジョブを使用して、カスタム ビジュアル ファミリーの定義とアイコンを Git からインポートします。

ジョブの入力

Pull Custom Family ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Family Name

必須。

インポートするカスタム ビジュアル ファミリーの正確な名前。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

カスタム ビジュアル ファミリーの定義とアイコンをプラットフォームのオントロジー設定にインポートします。

シミュレートされたケースをプッシュする

[Push Simulated Cases] ジョブを使用して、シミュレートされたテストケースを Git にエクスポートします。

ジョブの入力

Push Simulated Cases ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Simulated Cases

必須。

エクスポートするシミュレートされたケース名のカンマ区切りのリスト。

Commit

必須。

Git commit メッセージ。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Commit Author

省略可。

デフォルトの commit 作成者をオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

シミュレートされたケースを .case ファイルとして /SimulatedCases/<Case_Name>.case にエクスポートします。

シミュレートされたケースをプルする

Pull Simulated Cases ジョブを使用して、Git からシミュレートされたテストケースをインポートします。

ジョブの入力

Pull Simulated Cases ジョブを構成するには、次のパラメータを使用します。

パラメータ 説明
Simulated Cases

必須。

リポジトリからインポートするシミュレートされたケース名のカンマ区切りのリスト。

Repo URL

省略可。

デフォルトのリポジトリ URL をオーバーライドします。

Branch

省略可。

デフォルト ブランチをオーバーライドします。

Git Server Fingerprint

省略可。

デフォルトの SSH ホスト フィンガープリントをオーバーライドします。

ジョブ出力

指定されたシミュレートされたケースをプラットフォームのシミュレートされたケース カタログにインポートします。

トラブルシューティング

次の表に、一般的な同期エラーの修正手順を示します。

確認されたエラー メッセージ 運用上の原因 修復手順
GitSync バージョン 53.0 での AttributeError: 'OnePlatformSoarApi' object has no attribute 'update_ide_item' または同期エラー 回帰的な GitSync バージョン 53.0 パッケージを実行している。このパッケージには、カスタム IDE アイテムと変更された JSON スキーマに関する既知の同期の問題が含まれています。 コンテンツ ハブで GitSync をバージョン 52.0 にロールバックするか、バージョン 54.0 にアップグレードし、Branch パラメータが v53 より前のリポジトリ ブランチを指していることを確認します。詳しい手順については、バージョン 53.0 のロールバックとバージョン 52.0 / 54.0 の互換性をご覧ください。
Permission denied (publickey) または Host key verification failed(または Authentication failed for 'https://...') 無効な認証情報形式、デプロイキーの書き込み権限の欠落、ホスト フィンガープリントの不一致が原因で、Git 認証に失敗しました。
  • SSH 認証: 秘密 SSH 認証鍵が、末尾に改行や空白のない 1 行の base64 文字列に変換されていることを確認します。対応する公開鍵が書き込みアクセス権付きで Git リポジトリに登録されていることを確認します。
  • ホスト フィンガープリント: ホスト フィンガープリントの固定が有効になっている場合は、ssh-keyscan -t rsa <hostname> を使用してフィンガープリント文字列を確認し、[Git Server Fingerprint] パラメータを更新します。
  • HTTPS 認証: 個人アクセス トークン(PAT)が期限切れになっておらず、リポジトリの書き込みスコープがあることを確認します。
403 Forbidden: Insufficient permissions to modify playbook(または Failed to push playbook: Access denied) ターゲットのハンドブックにデフォルトのアクセス権限(閲覧可能など)が制限されており、Administrator SOC ロールにソースシステムでの編集可能権限が付与されていない。 Google SecOps で [ハンドブック] に移動し、影響を受けるハンドブックを選択して、権限設定を開き、Administrator SOC ロールを編集可能権限で追加します(または、GitSync 統合インスタンスでオプションの SOAR ユーザー名と SOAR パスワード パラメータを構成します)。詳細な手順については、ハンドブックの権限を構成するをご覧ください。
Pull Content ジョブまたは Pull Integration ジョブが 5 分後にタイムアウトする 1 回の pull オペレーション中に Content Hub から複数の商用統合をインストールすると、5 分間のジョブ実行タイムアウトを超えました。 コンテンツの取得を実行する前に、必要な商用統合をコンテンツ ハブから手動でインストールするか、コンテンツの取得ジョブを再実行して、残りのアセットのインポートを続行します。
General error performing Job Pull Content(または、リポジトリ ブランチから pull する場合は 400 Bad Request / 404 Not Found) 初期化されていないリポジトリ ブランチ、または互換性のない GitSync バージョン 53.0 スキーマを使用して JSON ファイルがエクスポートされたブランチから pull しようとしています。
  • GitSync バージョン 53.0 を使用してブランチが変更された場合は、[Branch] パラメータを v53 より前のリポジトリ ブランチに戻すか、v53 より前のブランチのバックアップを復元します(バージョン 53.0 のロールバックとバージョン 52.0 / 54.0 の互換性を参照)。
  • バージョン 52.0 または 54.0 で新しいブランチを設定する場合は、まず完全な Push Content ジョブを実行してブランチにデータを入力してから、pull ジョブを実行します。
Playbook '<Playbook_Name>' is assigned to environment(s) that don't exist インポートされるハンドブックまたはブロックが、移行先のインスタンスで作成されていない環境または環境グループに割り当てられている。 [Environments] オプションを選択した状態で [Pull Content] を実行するか、ハンドブックを pull する前に、宛先インスタンスの [Settings] > [Environments] で不足している環境を手動で作成します。
Commit Author parameter must be in the following format: Name <example@gmail.com> 統合インスタンスまたはジョブ構成の [Commit Author] パラメータに、山かっこで囲まれたメールアドレスがありません。 [Commit Author] パラメータを、必要な形式 Name <email@domain.com>(例: GitSync <gitsync@example.com>)に一致するように更新します。
オントロジー マッピングのインポート時の 400 Bad Request または 409 Conflict リポジトリ内のイベント マッピング ルールが既存のプラットフォーム オントロジー ルールと競合しているか、互換性のない GitSync バージョンを使用してエクスポートされています。 GitSync バージョン 54.0 または 52.0 を使用して新しいマッピングのプッシュジョブを実行し、マッピング定義を再エクスポートするか、[設定] > [オントロジー] > [マッピング ルール] で重複するイベント マッピング ルールを解決してから、ジョブを再実行します。

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