Microsoft Sentinel 倉庫允許你部署和管理外部版本控制庫的自訂 Sentinel 內容,用於持續整合/持續交付, (CI/CD) 。 此自動化消除了手動更新與部署自訂內容於多個工作空間的需求。 內容即程式碼的子集是偵測即程式碼 (DaC)。 Microsoft Sentinel Repositories 也實作了 DaC。
欲了解更多 Sentinel 內容資訊,請參閱「關於 Microsoft Sentinel 內容與解決方案」。
Microsoft Sentinel 倉庫的運作方式
你可以從連接到 Microsoft Sentinel 的外部原始碼控制倉庫部署這些 Microsoft Sentinel 自訂內容類型:
- 分析規則
- 自動化規則
- 自訂偵測規則(預覽)
- 狩獵查詢
- 解析器
- 劇本
- Workbooks
您對 Microsoft Sentinel 倉庫內容所做的匯報會同步至 Microsoft Sentinel 工作空間,並覆寫您透過 Microsoft Sentinel 入口網站對該內容所做的任何變更。 您的 Microsoft Sentinel 倉庫將成為您在連結工作空間中自訂內容的唯一真實來源。
規劃你的儲存庫連線
Microsoft Sentinel 存放庫需要經過仔細規劃,以確保您的工作區對您想要連線的存放庫 (repo) 具有適當的權限。
- 僅支援連接 GitHub 和 Azure DevOps 軟體庫。
- 需要協作者存取您的 GitHub 儲存庫,或專案管理員存取您的 Azure DevOps 儲存庫。
- Microsoft Sentinel 應用程式需要取得你存放庫的授權。
- GitHub 必須啟用動作。
- 必須為 Azure DevOps 啟用管線。
- Azure DevOps 連線必須與你的 Microsoft Sentinel 工作空間在同一個租戶中。
建立與儲存庫的連線需要在包含您的 Microsoft Sentinel 工作空間的資源群組中扮演擁有者角色。
如果你在公開倉庫裡發現內容,而你不是貢獻者,請先將內容匯入、分支或複製到你是貢獻者的倉庫。 接著將你的 repo 連接到 Microsoft Sentinel 工作空間。 欲了解更多資訊,請參閱 「從你的儲存庫部署自訂內容」。
連線與部署上限
- 每個 Microsoft Sentinel 工作空間目前限制為五個儲存庫連線。
- 每個 Azure 資源群組的部署歷史中限制為 800 次部署。 如果你的一個或多個資源群組中有大量的範本部署,你可能會看到
Deployment QuotaExceeded錯誤。 欲了解更多資訊,請參閱 Azure Resource Manager 模板文件中的 DeploymentQuotaExceeded。
規劃你的資料庫內容
Microsoft Sentinel 存放庫支援部署您以 Bicep 檔案或 Azure Resource Manager (ARM) 範本儲存的內容。 我們建議使用 Bicep,因為它更直覺,也更容易描述 Azure 資源和 Microsoft Sentinel 內容。
每種內容類型的範本都有特定的結構與參數名稱,詳見 Sentinel 資源範本參考。 關於每種內容類型的範例,請參見 RepositoriesSampleContent 倉庫。
我們提供了一個範例倉庫,包含每種內容類型的範本。 該倉庫同時示範如何使用儲存庫連線的進階功能。 欲了解更多資訊,請參閱 Microsoft Sentinel CI/CD 資料庫範例。
雖然你可以從零開始建立範本,但通常從 Sentinel 公共 GitHub 倉庫的 YAML 檔案或是開箱即用的 Microsoft Sentinel 內容開始會比較容易。 此表說明如何將 ARM 範本轉換為 Microsoft Sentinel 倉庫使用。
| 內容類型 | 從 Sentinel Public YAML 轉換 | 從 Sentinel 匯出 | 範本參考資料 | 範例範本 |
|---|---|---|---|---|
| 解析規則 | PowerShell 指令碼 | 匯出功能 或 PowerShell 腳本 | Reference | ARM 範本 |
| 自動化規則 | 不適用 | 匯出功能 或 PowerShell 腳本 | Reference | 不適用 |
| 獵捕查詢 | PowerShell 指令碼 | Azure CLI 指令 | Reference | 範例內容 |
| 解析器 | ASIM PowerShell script | Azure CLI 指令 | Reference | Templates |
| 操作手冊 | 不適用 | PowerShell 工具 | Reference | 不適用 |
| Workbooks | 不適用 | 將活頁簿匯出為 ARM 範本 | Reference | 不適用 |
重要事項
Bicep 考量事項:
- 要使用 Bicep 檔案,如果你的連線是在 2024 年 11 月 1 日之前建立的,則需要更新你的倉庫連線。 儲存庫的連線必須 移除 並重建才能更新。
- Bicep 檔案不支援這個
id特性。 在將 ARM JSON 反編譯成 Bicep 時,請確保你沒有這個屬性。 例如,從 Microsoft Sentinel 匯出的分析規則範本中,就包含id需要移除的屬性。 - 在反編譯時,將 ARM JSON 架構改成版本
2019-04-01,以獲得最佳效果。
使用 Microsoft Sentinel Repositories 功能部署的分析規則,只有當目的地工作區與連接到該儲存庫的工作區位於同一資源群組時,才能使用跨工作空間查詢。
欲了解如何從零開始創建自訂內容,請參閱針對每種內容類型的相關 Microsoft Sentinel GitHub 維基。
以程式碼形式部署自訂偵測規則(預覽版)
重要事項
Microsoft Sentinel Repositories 的自訂偵測規則支援目前處於預覽階段。 請參閱Microsoft Azure 預覽的補充使用條款,以了解適用於 Azure 測試版、預覽版或其他尚未正式發布的功能的法律條款。
你可以使用 Microsoft 安全性 BICEP 擴充功能,在你的儲存庫中以程式碼管理自訂偵測規則。 自訂偵測規則使用與其他 Microsoft Sentinel 內容類型不同的 BICEP 擴充功能與資源提供者。
自訂偵測規則的前提條件
除了標準 的儲存庫連線前提外,自訂偵測規則還要求:
- Microsoft 365 E5 授權(或包含 Microsoft Defender 全面偵測回應 的等效授權)。
- Microsoft Sentinel 工作空間已整合至 Microsoft Defender 入口網站。
設定 Microsoft 安全性 BICEP 擴充功能
自訂偵測規則需要 Microsoft 安全性 BICEP 擴充功能。 在你的儲存庫根目錄建立一個 bicepconfig.json 檔案:
{
"extensions": {
"MicrosoftSecurity": "br:mcr.microsoft.com/bicep/extensions/microsoftsecurity:v1.0.1"
}
}
此配置對於基於儲存庫的同步及直接 BICEP 部署皆為必要。
建立自訂偵測規則 BICEP 檔案
請根據資源類型定義自訂偵測規則 Microsoft.Security/detectionRules 。 建立一個.bicep檔案(例如 detectionRule.bicep),其結構如下:
extension MicrosoftSecurity
resource detectionRule 'Microsoft.Security/detectionRules@2026-06-01-preview' = {
id: 'custom-rule-id'
displayName: 'Custom Rule Display Name'
status: 'enabled'
queryCondition: {
queryText: 'DeviceProcessEvents | take 10 | project DeviceId, Timestamp, FileName'
}
schedule: {
frequency: 'PT1H'
}
detectionAction: {
alertTemplate: {
title: '<ruleTitle>'
description: 'Custom detection rule'
severity: 'medium'
tactics: [
{
tactic: 'Execution'
techniques: [
{
technique: 'T1059'
}
]
}
]
entityMappings: {
hosts: [
{
id: 'h'
deviceIdColumn: 'DeviceId'
}
]
}
}
}
}
規則以其 ID 唯一識別,必須在範本中提供。
部署自訂偵測規則
您可以使用以下其中一種方法部署自訂偵測規則。
| 部署方法 | Description | 誰負責部署 |
|---|---|---|
| Microsoft Sentinel Repositories (sync) | 自動從你的 GitHub 或 Azure DevOps 倉庫同步到 Microsoft Sentinel。 | Sentinel 會在每次提交時自動執行部署。 |
| BICEP CLI(直接) | 從 Azure CLI 使用 az deployment group create 進行部署。 |
你可以手動執行部署,或是從自訂管線執行。 |
選項一:使用 Microsoft Sentinel Repositories 部署
- 將 BICEP 檔案
bicepconfig.json提交到你的 GitHub 或 Azure DevOps 儲存庫。 - 在 Microsoft Defender 入口網站中,前往 Microsoft Sentinel>內容管理>倉庫。
- 建立新的儲存庫連線或編輯現有的連結。
- 在連線設定中,選擇內容類型中的自訂偵測規則。
- 保留連線。
啟用後,Microsoft Sentinel 會自動同步儲存庫的自訂偵測規則。
選項二:直接使用 BICEP 部署
執行以下 Azure CLI 命令:
az deployment group create \
--resource-group <RESOURCE_GROUP> \
--template-file detectionRule.bicep \
--name mtp-deployment
確認資源群組部署是否成功完成。
驗證部署
使用任一選項完成部署後:
- 確認偵測規則是否出現在您的 Microsoft Defender 入口網站的自訂偵測規則清單中。
- 確認該規則是否啟用並產生預期結果。
- 如果你使用了儲存庫同步(選項 1),請在儲存庫中做修改以驗證同步行為。
預覽限制
預覽期間:
- 不支援 Microsoft Sentinel 資料的自訂頻率。
- 不支援自訂細節。
透過智慧部署提升效能
提示
為了確保智慧部署在 GitHub 上運作,工作流程必須對你的倉庫擁有讀寫權限。 欲了解更多資訊,請參閱管理 GitHub Actions 儲存庫設定。
智慧部署功能是一種後端功能,透過主動追蹤連接資料庫內容檔案的修改,提升效能。 它會使用你儲存庫資料夾中的 .sentinel CSV 檔案來審核每個提交。 這個工作流程避免重新部署自上次部署以來未被修改的內容。 此流程提升部署效能,防止對工作空間中未變更內容的干擾,例如重設分析規則的動態排程。
新建立的連線預設啟用智慧部署。 如果你希望每次部署觸發時都部署所有版本控制內容,不論內容是否被修改,請修改工作流程以關閉智慧部署。 欲了解更多資訊,請參閱 「自訂工作流程或管線」。
考慮部署自訂選項
使用 Microsoft Sentinel 存放庫部署內容時,請考慮下列自訂選項。
自訂工作流程或管線
以下列其中一種方式自訂工作流程或管線:
- 配置不同的部署觸發器
- 僅從特定工作區的特定根目錄部署內容
- 排程定期執行工作流程
- 將不同的工作流程事件合併在一起
- 停用智慧部署
這些自訂項目定義於專屬於你的工作流程或管線的 .yml 檔案中。 欲了解更多實作資訊,請參閱 「自訂儲存庫部署」
自訂部署
一旦工作流程或管線啟動,部署將支援以下情境:
- 優先部署要部署的內容,接著才處理其他存放庫內容
- 將內容排除在部署之外
- 指定 ARM 範本參數檔案
這些選項可透過 PowerShell 部署腳本中從工作流程或管線呼叫的功能提供。 欲了解更多如何實作這些自訂,請參閱 「自訂儲存庫部署」。
使用 API 管理 Microsoft Sentinel 倉庫
關於使用 API 管理 Microsoft Sentinel 倉庫的資訊,請參閱 Microsoft Sentinel REST API 中的「來源控制」與「來源控制」動作。
重要事項
自 2026 年 6 月起,Microsoft Sentinel 倉庫使用的舊版 API 將不再支援。 如果你使用 API 來建立和管理儲存庫連線,請在 2026 年 6 月 15 日前轉換至 API 版本 2025-09-01、 2025-06-01 或 2025-07-01-preview ,以避免服務中斷。 現有的儲存庫連線不會受到影響。
後續步驟
獲取更多範例及逐步說明,了解如何部署 Microsoft Sentinel 倉庫。