Microsoft Sentinel ワークスペースへのリポジトリのコンテンツのデプロイをカスタマイズするには、主に 2 つの方法があります。 各方法では異なるファイルと構文が使われるため、これらの例を使って作業を始めることを検討してください。
カスタマイズ方法 | 対象となる配置オプション |
---|---|
GitHub ワークフロー DevOps パイプライン |
接続の配置トリガーをカスタマイズする 配置パスをカスタマイズする スマート配置の有効化 |
構成ファイル | コンテンツ配置の優先順位を制御する 特定のコンテンツ ファイルを配置から "除外" することを選択する パラメーター ファイルを特定のコンテンツ ファイルにマップすることで、さまざまなワークスペースに配置をスケーリングする |
重要
Microsoft Sentinel リポジトリ 機能は現在 プレビュー段階です。 ベータ版、プレビュー版、または一般公開されていない Azure 機能に適用されるその他の法的条件については、 Microsoft Azure プレビューの追加使用条件 を参照してください。
前提条件
リポジトリの配置をカスタマイズするには、リポジトリ接続が存在する必要があります。 接続の作成の詳細については、「 リポジトリからカスタム コンテンツをデプロイする」を参照してください。 接続が確立された後は、次の前提条件が適用されます。
- GitHub リポジトリへのコラボレーター アクセスまたは Azure DevOps リポジトリへのプロジェクト管理者アクセス
- GitHub に対して有効なアクションと、Azure DevOps に対して有効なパイプライン
- ワークスペースに配置するカスタム コンテンツ ファイルがサポートされている形式であることを確認します。 サポートされている形式については、「 リポジトリのコンテンツを計画する」を参照してください。
展開可能なコンテンツ タイプの詳細については、「 コンテンツの検証」を参照してください。
ワークフローまたはパイプラインをカスタマイズする
既定のワークフローでは、リポジトリへのコミットに基づいて、前回のデプロイ以降に変更されたコンテンツのみがデプロイされます。 異なる配置トリガーを構成したり、特定のルート フォルダーからのみコンテンツを配置したりするには、カスタマイズしてください。
接続の種類に応じて、次のいずれかのタブを選択します。
GitHub デプロイ ワークフローをカスタマイズするには:
GitHub でリポジトリに移動し、 .github/workflows ディレクトリでワークフローを見つけます。
ワークフロー ファイルは、 sentinel-deploy-xxxxx.ymlで始まる YML ファイルです。 そのファイルを開くと、ワークフロー名が最初の行に表示され、既定の名前付け規則は
Deploy Content to <workspace-name> [<deployment-id>]
になります。例:
name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]
ページの右上にある鉛筆ボタンを選択して編集のためにファイルを開き、次のようにデプロイを変更します。
デプロイ トリガーを変更するには、コード内の
on
セクションを更新します。このセクションには、ワークフローの実行をトリガーするイベントが記述されています。既定で、この構成は
on: push
に設定されています。つまり、既存のコンテンツへの変更とリポジトリへの新しいコンテンツの追加の両方を含め、接続されたブランチへのすべてのプッシュ時にワークフローがトリガーされます。 次に例を示します。on: push: branches: [ main ] paths: - `**` - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
たとえば、ワークフローを定期的に実行するようにスケジュールしたり、さまざまなワークフロー イベントを結合したりするには、これらの設定を変更します。
詳細については、ワークフロー イベントの構成に関する GitHub ドキュメント を参照してください。
スマート デプロイを無効にするには:スマート デプロイの動作は、説明されているデプロイ トリガーとは別です。 ワークフローの
jobs
セクションに移動します。smartDeployment
の既定値をtrue
からfalse
に切り替えます。 この変更がコミットされると、スマート デプロイ機能がオフになり、この接続のすべての将来のデプロイでは、この変更がコミットされると、リポジトリの関連するすべてのコンテンツ ファイルが接続されたワークスペースに再デプロイされます。デプロイ パスを変更するには:
on
セクションに関する既定の構成では、**
セクションの最初の行にあるワイルドカード (paths
) は、ブランチ全体がデプロイ トリガーのパスに含まれていることを示しています。この既定の構成は、コンテンツがブランチのどこかにプッシュされるといつでもデプロイ ワークフローがトリガーされることを意味します。
ファイルの後半の
jobs
セクションには、既定の構成directory: '${{ github.workspace }}'
が含まれています。 この行は、フォルダー パスをフィルターせずに、 GitHub ブランチ全体がコンテンツ デプロイのパスに含まれることを示しています。特定のフォルダー パスのコンテンツのみをデプロイするには、それを
paths
とdirectory
の両方の構成に追加します。 たとえば、SentinelContent
という名前のルート フォルダーからのコンテンツのみをデプロイするには、次のようにコードを更新します。paths: - `SentinelContent/**` - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow - `.github/workflows/sentinel-deploy-<deployment-id>.yml` ... directory: '${{ github.workspace }}/SentinelContent'
詳細については、 GitHub Actions と GitHub ワークフローの編集に関する GitHub ドキュメントを参照してください。
重要
GitHub と Azure DevOps の両方で、トリガー パスとデプロイ パスのディレクトリの一貫性を維持してください。
パラメーター ファイルを使用してデプロイをスケーリングする
コンテンツ ファイルでパラメーターをインライン値として渡すのではなく、 Bicep パラメーター ファイルまたはパラメーター 値を 含む JSON ファイルの使用を検討してください。 次に、これらのパラメーター ファイルを関連付けられた Microsoft Sentinel コンテンツ ファイルにマップして、異なるワークスペースにまたがる配置をより適切にスケーリングします。
パラメーター ファイルをコンテンツ ファイルにマップするには、いくつかの方法があります。 Bicep パラメーター ファイルは Bicep ファイル テンプレートのみをサポートしますが、JSON パラメーター ファイルは両方をサポートしていることに注意してください。 リポジトリの展開パイプラインでは、パラメーター ファイルが次の順序で考慮されます。
にマッピングはありますか?詳細については、「
。ワークスペースにマップされたパラメーター ファイルはありますか? はい。コンテンツ ファイルは、ワークスペース にマップされたパラメーター ファイルと同じディレクトリ内に、
.< のいずれかのパターンに一致します。WorkspaceID>.bicepparam
.parameters-<WorkspaceID>.json既定のパラメーター ファイルはあるか? はい。コンテンツ ファイルは、
.bicepparam
次のいずれかのパターンに一致するパラメーター ファイルを持つ同じディレクトリにあります.parameters.json
構成ファイルを使用してパラメーター ファイルをマップするか、ファイル名にワークスペース ID を指定することで、複数のワークスペース配置との競合を回避します。
重要
マッピングの優先順位に基づいてパラメーター ファイルの一致が決定されると、残りのマッピングはパイプラインで無視されます。
sentinel-deployment.config に一覧表示されているマップされたパラメーター ファイルを変更すると、ペアになったコンテンツ ファイルのデプロイがトリガーされます。 ワークスペースマップ パラメーター ファイルまたは既定のパラメーター ファイルの追加または変更を行うと、さらに優先順位の高いパラメーター マッピングが設定されていない限り、ペアになっているコンテンツ ファイルと、新しく変更されたパラメーターの配置がトリガーされます。 ワークフロー/パイプライン定義ファイルでスマート デプロイ機能が有効になっている限り、他のコンテンツ ファイルはデプロイされません。
接続構成をカスタマイズする
2022 年 7 月の時点で、リポジトリのデプロイ スクリプトでは、各リポジトリ ブランチのデプロイ構成ファイルの使用がサポートされています。 構成 JSON ファイルは、パラメーター ファイルを関連するコンテンツ ファイルにマップし、デプロイの特定のコンテンツを優先し、デプロイから特定のコンテンツを除外するのに役立ちます。
リポジトリのルートに sentinel-deployment.config ファイルを作成します。 この構成ファイルを追加、削除、または変更すると、更新された構成に従ってリポジトリ内のすべてのコンテンツの完全な配置がトリガーされます。
構造化コンテンツを 3 つの省略可能なセクションである
"prioritizedcontentfiles":
、"excludecontentfiles":
、"parameterfilemappings":
に追加します。 セクションが含まれない場合や、.config ファイルが省略されている場合でも、デプロイ プロセスは実行されます。 無効なセクションまたは認識されないセクションは無視されます。
以下は有効なsentinel-deployment.configファイルの内容全体の例です。 このサンプルは、 Microsoft Sentinel CICD リポジトリのサンプルでも確認できます。
{
"prioritizedcontentfiles": [
"parsers/Sample/ASimAuthenticationAWSCloudTrail.json",
"workbooks/sample/TrendMicroDeepSecurityAttackActivity_ARM.json",
"Playbooks/PaloAlto-PAN-OS/PaloAltoCustomConnector/azuredeploy.bicep"
],
"excludecontentfiles": [
"Detections/Sample/PaloAlto-PortScanning.json",
"parameters"
],
"parameterfilemappings": {
"879001c8-2181-4374-be7d-72e5dc69bd2b": {
"Playbooks/PaloAlto-PAN-OS/Playbooks/PaloAlto-PAN-OS-BlockIP/azuredeploy.bicep": "parameters/samples/auzredeploy.bicepparam"
},
"9af71571-7181-4cef-992e-ef3f61506b4e": {
"Playbooks/Enrich-SentinelIncident-GreyNoiseCommunity-IP/azuredeploy.json": "path/to/any-parameter-file.json"
}
},
"DummySection": "This shouldn't impact deployment"
}
注
どのコンテンツ パスでも円記号 "\" 文字を使わないでください。 代わりにスラッシュ "/" を使ってください。
コンテンツ ファイルに優先順位を付ける方法:
リポジトリ内のコンテンツの量が増えると、デプロイの時間が長くなる可能性があります。 時間の影響を受けやすいコンテンツをこのセクションに追加し、トリガーが発生したときにそのデプロイを優先させます。
"prioritizedcontentfiles":
セクションに完全なパス名を追加します。 現時点では、ワイルドカード マッチングはサポートされていません。コンテンツ ファイルを除外するには、個々の .json コンテンツ ファイルの完全なパス名を使用して
"excludecontentfiles":
セクションを変更します。パラメーターをマップするには:
デプロイ スクリプトは、「パラメーター ファイルを使用したデプロイのスケーリング」の説明に従 って、パラメーターをマッピングする 3 つの方法を受け入れます。 sentinel-deployment.config を使用したパラメーターのマッピングは最も優先順位が高く、特定のパラメーター ファイルが関連付けられているコンテンツ ファイルにマップされることを保証します。
"parameterfilemappings":
セクションを、ターゲット接続のワークスペース ID と個々の .json ファイルの絶対パス名に変更してください。
関連するコンテンツ
サンプル リポジトリを使って、デプロイ構成ファイルと 3 つのパラメーター マッピング方法をすべて行ってみることができます。 詳細については、 Microsoft Sentinel CICD リポジトリのサンプルを参照してください。