Microsoft Sentinel リポジトリを使用してカスタム コンテンツを管理する (パブリック プレビュー)
Microsoft Sentinel のリポジトリ機能では、コードとしての Sentinel コンテンツをデプロイおよび管理するための一元的なエクスペリエンスが提供されます。 リポジトリを使うと、継続的インテグレーションと継続的デリバリー (CI/CD) のために外部のソース管理に接続できます。 この自動化により、カスタム コンテンツを更新して複数のワークスペースにデプロイする手動プロセスの負担が軽減されます。 Sentinel コンテンツについて詳しくは、「Microsoft Sentinel コンテンツとソリューションについて」をご覧ください。
重要
Microsoft Sentinel のリポジトリ機能は、現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項について詳しくは、「Microsoft Azure プレビューの追加の使用条件」を参照してください。
リポジトリ接続を計画する
Microsoft Sentinel リポジトリでは、ワークスペースから接続先のリポジトリ (repo) への適切なアクセス許可があるように、慎重に計画する必要があります。
- GitHub と Azure DevOps リポジトリへの接続のみがサポートされています。
- GitHub リポジトリへのコラボレーター アクセスまたは Azure DevOps リポジトリへのプロジェクト管理者アクセスが必要です。
- Microsoft Sentinel アプリケーションには、リポジトリへの承認が必要です。
- GitHub でアクションを有効にする必要があります。
- Azure DevOps に対してパイプラインを有効にする必要があります。
- Azure DevOps 接続は、Microsoft Sentinel ワークスペースと同じテナントに存在する必要があります。
リポジトリへの接続を作成するには、Microsoft Sentinel ワークスペースを含むリソース グループに所有者ロールが必要です。 お使いの環境で所有者ロールを使用できない場合は、ユーザー アクセス管理者ロールと Sentinel 共同作成者ロールを組み合わせて接続を作成します。
共同作成者ではないパブリック リポジトリにコンテンツがある場合は、まず、共同作成者であるリポジトリにコンテンツをインポート、フォーク、または複製します。 次に、リポジトリを Microsoft Sentinel ワークスペースに接続します。 詳細については、リポジトリからのカスタム コンテンツのデプロイに関する記事を参照してください。
リポジトリのコンテンツを計画する
リポジトリのコンテンツは、Bicep ファイル、または Azure Resource Manager (ARM) テンプレートとして格納する必要があります。 ただし、Bicep はより直感的で、Azure リソースと Microsoft Sentinel のコンテンツをより簡単に記述できます。
ARM JSON テンプレートの代わりに、Bicep ファイル テンプレートをデプロイします。 "コードとしてのインフラストラクチャ" のオプションを検討している場合は、Bicep を候補に入れることをお勧めします。 詳細については、「Bicep とは」を参照してください。
重要
Bicep テンプレートを使用するには、2024 年 11 月 1 日より前に接続が作成された場合、リポジトリ接続を更新する必要があります。 更新するには、リポジトリ接続を削除して再作成する必要があります。
元のコンテンツが ARM テンプレートの場合でも、Bicep に変換して、レビューと更新のプロセスの複雑さを軽減することを検討してください。 デプロイ中に各 Bicep ファイルが ARM テンプレートに変換されるため、Bicep は ARM と密接に関連しています。 ARM テンプレートの変換の詳細については、「ARM テンプレート JSON を Bicep に逆コンパイルする」を参照してください。
Note
既知の Bicep の制限事項:
- Bicep テンプレートでは、
id
プロパティはサポートされていません。 ARM JSON を Bicep に逆コンパイルする場合は、このプロパティがないことを確認してください。 たとえば、Microsoft Sentinel からエクスポートされた分析ルール テンプレートには、削除しなければならないid
プロパティがあります。 - 逆コンパイル時に最適な結果を得るために、ARM JSON スキーマをバージョン
2019-04-01
に変更します。
コンテンツの検証
次の Microsoft Sentinel コンテンツ タイプは、リポジトリ接続を使ってデプロイできます。
- 分析ルール
- オートメーション ルール
- ハンティング クエリ
- パーサー
- プレイブック
- ブック
ヒント
この記事では、これらのタイプのコンテンツを最初から作成する方法については説明 "しません"。 詳細については、各コンテンツ タイプに関する関連の Microsoft Sentinel GitHub wiki を参照してください。
リポジトリのデプロイでは、コンテンツが正しい JSON 形式または Bicep 形式であることの確認以外の検証は行われません。 デプロイする前に、必ず Microsoft Sentinel 内でコンテンツをテストしてください。
リストされている各コンテンツ タイプ用のテンプレートで、サンプル リポジトリを利用できます。 リポジトリでは、リポジトリ接続の高度な機能を使用する方法も示されます。 詳細については、「Microsoft Sentinel CI/CD リポジトリのサンプル」を参照してください。
最大接続数とデプロイ数
- 現在、各 Microsoft Sentinel ワークスペースのリポジトリ接続は 5 つに制限されています。
- 各 Azure リソース グループは、そのデプロイ履歴で 800 デプロイに制限されます。 1 つ以上のリソース グループの大量のテンプレート デプロイがある場合は、
Deployment QuotaExceeded
エラーが表示されることがあります。 詳細については、Azure Resource Manager テンプレート ドキュメントの「DeploymentQuotaExceeded」を参照してください。
スマート デプロイを使用してパフォーマンスを向上させる
ヒント
GitHub でスマート デプロイを確実に動作させるには、リポジトリに対する読み取りと書き込みのアクセス許可がワークフローに必要です。 詳細については、「リポジトリの GitHub Actions 設定を管理する」を参照してください。
スマート デプロイ機能は、接続されたリポジトリのコンテンツ ファイルに対して行われた変更をアクティブに追跡することでパフォーマンスを向上させるバックエンド機能です。 リポジトリの .sentinel
フォルダー内の CSV ファイルを使って、各コミットを監査します。 前回のデプロイ以降に変更されていないコンテンツは、ワークフローで再デプロイされません。 このプロセスにより、デプロイのパフォーマンスが向上し、ワークスペース内の変更されていないコンテンツの改ざん (分析ルールの動的スケジュールのリセットなど) を防ぐことができます。
新しく作成される接続では、スマート デプロイが既定で有効になります。 デプロイがトリガーされるたびに、ソース管理コンテンツがすべてデプロイされるようにしたい場合、そのコンテンツが変更されたかどうかに関わらず、スマート デプロイを無効にするようにワークフローを変更します。 詳しくは、「ワークフローまたはパイプラインをカスタマイズする」を参照してください。
デプロイのカスタマイズのオプションを検討する
Microsoft Sentinel リポジトリを使用してコンテンツをデプロイする場合は、次のカスタマイズ オプションを検討してください。
ワークフローまたはパイプラインをカスタマイズする
ワークフローまたはパイプラインは、次のいずれかの方法でカスタマイズします:
- 異なるデプロイ トリガーを構成する
- 特定のワークスペースについては特定のルート フォルダーからのみコンテンツをデプロイする
- ジョブの定期的な実行をスケジュールする
- 異なるワークフロー イベントを組み合わせる
- スマート デプロイをオフにする
これらのカスタマイズは、ワークフローまたはパイプラインに固有の .yml ファイルで定義されます。 実装方法に関する情報については、「リポジトリのデプロイをカスタマイズする」を参照してください
デプロイメントのカスタマイズ
ワークフローまたはパイプラインがトリガーされると、デプロイは次のシナリオをサポートします。
- コンテンツを優先して、リポジトリコンテンツのほかのものより前にデプロイする
- デプロイからコンテンツを除外する
- ARM テンプレートのパラメーター ファイルを指定する
これらのオプションは、ワークフローまたはパイプラインから呼び出される PowerShell デプロイ スクリプトの機能を通じて使用できます。 これらのカスタマイズの実装方法の詳細については、「リポジトリのデプロイをカスタマイズする」を参照してください。
次のステップ
Microsoft Sentinel リポジトリのデプロイに関するその他の例と詳細な手順を確認します。