Microsoft Sentinel リポジトリを使用してカスタム コンテンツを管理する (パブリック プレビュー)

Microsoft Sentinel のリポジトリ機能では、コードとしての Sentinel コンテンツをデプロイおよび管理するための一元的なエクスペリエンスが提供されます。 リポジトリを使うと、継続的インテグレーションと継続的デリバリー (CI/CD) のために外部のソース管理に接続できます。 この自動化により、カスタム コンテンツを更新して複数のワークスペースにデプロイする手動プロセスの負担が軽減されます。 Sentinel コンテンツについて詳しくは、「Microsoft Sentinel コンテンツとソリューションについて」をご覧ください。

重要

Microsoft Sentinel のリポジトリ機能は、現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

リポジトリ接続を計画する

Microsoft Sentinel リポジトリでは、ワークスペースから接続先のリポジトリ (repo) への適切なアクセス許可があるように、慎重に計画する必要があります。 現在サポートされているのは、GitHub および Azure DevOps リポジトリへの共同作成者アクセス権を持つ接続のみです。 Microsoft Sentinel アプリケーションでは、リポジトリに対する認可が必要であり、GitHub に対するアクションが有効になり、Azure DevOps に対するパイプラインが有効になります。

リポジトリでは、Microsoft Sentinel ワークスペースを含むリソース グループでの所有者ロールが必要です。 Microsoft Sentinel とソース管理リポジトリ間の接続を作成するために、このロールが必要です。 お使いの環境で所有者ロールを使用できない場合は、代わりにユーザー アクセス管理者ロールと Sentinel 共同作成者ロールを組み合わせて接続を作成できます。

自分が共同作成者 "ではない" パブリック リポジトリにコンテンツがある場合は、最初にそのコンテンツを自分のリポジトリに取得する必要があります。 これは、自分が共同作成者であるリポジトリへのコンテンツのインポート、フォーク、またはクローンによって行うことができます。 その後、リポジトリを Sentinel ワークスペースに接続できます。 詳細については、リポジトリからのカスタム コンテンツのデプロイに関する記事を参照してください。

コンテンツの検証

次の Microsoft Sentinel コンテンツ タイプは、リポジトリ接続を使ってデプロイできます。

  • 分析ルール
  • オートメーション ルール
  • ハンティング クエリ
  • パーサー
  • プレイブック
  • ブック

ヒント

この記事では、これらのタイプのコンテンツを最初から作成する方法については説明 "しません"。 詳細については、各コンテンツ タイプに関する関連の Microsoft Sentinel GitHub wiki を参照してください。

リポジトリのコンテンツは、ARM テンプレートとして格納する必要があります。 リポジトリのデプロイでは、コンテンツが正しい JSON 形式であることの確認以外の検証は行われません。

コンテンツを検証する最初のステップは、Microsoft Sentinel 内でテストすることです。 Microsoft Sentinel GitHub 検証プロセスとツールを適用して、検証プロセスを補完することもできます。

上記の各コンテンツ タイプ用の ARM テンプレートで、サンプル リポジトリを利用できます。 リポジトリでは、リポジトリ接続の高度な機能を使用する方法も示されます。 詳しくは、Sentinel CICD リポジトリ サンプルに関するページをご覧ください。

正常なリポジトリ接続のスクリーンショット。RepositoriesSampleContent が示されています。このスクリーンショットは、サンプルが SentinelCICD リポジトリから FourthCoffee 組織のプライベート GitHub リポジトリにインポートされた後のものです。

最大接続数とデプロイ数

  • 現在、各 Microsoft Sentinel ワークスペースのリポジトリ接続は 5 つに制限されています。

  • 各 Azure リソース グループは、そのデプロイ履歴で 800 デプロイに制限されます。 リソース グループに大量の ARM テンプレートのデプロイがある場合、Deployment QuotaExceeded エラーが表示されることがあります。 詳細については、Azure Resource Manager テンプレート ドキュメントの「DeploymentQuotaExceeded」を参照してください。

スマート デプロイを使用してパフォーマンスを向上させる

ヒント

GitHub でスマート デプロイを確実に動作させるには、リポジトリに対する読み取りと書き込みのアクセス許可がワークフローに必要です。 詳細については、「リポジトリの GitHub Actions 設定を管理する」を参照してください。

スマート デプロイ機能は、接続されたリポジトリのコンテンツ ファイルに対して行われた変更をアクティブに追跡することでパフォーマンスを向上させるバックエンド機能です。 リポジトリの ".sentinel" フォルダー内の CSV ファイルを使って、各コミットを監査します。 前回のデプロイ以降に変更されていないコンテンツは、ワークフローで再デプロイされません。 このプロセスにより、デプロイのパフォーマンスが向上し、ワークスペース内の変更されていないコンテンツの改ざん (分析ルールの動的スケジュールのリセットなど) を防ぐことができます。

新しく作成される接続では、スマート デプロイが既定で有効になります。 コンテンツが変更されたかどうかにかかわらず、デプロイがトリガーされるたびにすべてのソース管理コンテンツをデプロイしたい場合は、ワークフローを変更してスマート デプロイを無効にできます。 詳しくは、「ワークフローまたはパイプラインをカスタマイズする」を参照してください。

注意

この機能は、2022 年 4 月 20 日にパブリック プレビューで開始されました。 スマート デプロイを有効にするには、起動前に作成された接続を更新または再作成する必要があります。

デプロイのカスタマイズのオプションを検討する

Microsoft Sentinel リポジトリを使用してコンテンツをデプロイするときに検討できるカスタマイズ オプションがいくつかあります。

ワークフローまたはパイプラインをカスタマイズする

ワークフローまたはパイプラインは、次のいずれかの方法でカスタマイズできます。

  • 異なるデプロイ トリガーを構成する
  • 特定のワークスペースについては特定のルート フォルダーからのみコンテンツをデプロイする
  • ジョブの定期的な実行をスケジュールする
  • 異なるワークフロー イベントを組み合わせる
  • スマート デプロイをオフにする

これらのカスタマイズは、ワークフローまたはパイプラインに固有の .yml ファイルで定義されます。 実装方法の詳細については、「リポジトリのデプロイをカスタマイズする」を参照してください。

デプロイメントのカスタマイズ

ワークフローまたはパイプラインがトリガーされると、デプロイは次のシナリオをサポートします。

  • コンテンツを優先して、リポジトリコンテンツのほかのものより前にデプロイする
  • デプロイからコンテンツを除外する
  • ARM テンプレートのパラメーター ファイルを指定する

これらのオプションは、ワークフローまたはパイプラインから呼び出される PowerShell デプロイ スクリプトの機能を通じて使用できます。 これらのカスタマイズの実装方法の詳細については、「リポジトリのデプロイをカスタマイズする」を参照してください。

次のステップ

Microsoft Sentinel リポジトリのデプロイに関するその他の例と詳細な手順を確認します。