Microsoft Sentinel 存放庫功能提供以程式碼形式部署及管理 Sentinel 內容的集中體驗。 存放庫允許外部原始檔控制連線,以供持續整合/持續傳遞 (CI/CD)。 此自動化可減輕更新及部署工作區之間自訂內容的手動程序負擔。 內容即程式碼的子集是偵測為程式碼 (DaC)。 Microsoft Sentinel 存放庫也會實作 DaC。
如需關於 Sentinel 內容的詳細資訊,請參閱關於 Microsoft Sentinel 內容和解決方案。
重要事項
Microsoft Sentinel 存放庫功能目前處於預覽。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的更多法律條款。
規劃存放庫連線
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 內容。
部署 Bicep 檔案範本,而非 ARM JSON 範本。 如果您正在考慮選擇基礎結構即程式碼選項,建議您查看 Bicep。 如需詳細資訊,請參閱什麼是 Bicep?。
重要事項
若要使用 Bicep 檔案,如果您的連線是在 2024 年 11 月 1 日之前建立的,就必須更新您的存放庫連線。 必須移除並重新建立存放庫連線,才能更新。
即使您的原始內容是 ARM 範本,請考慮轉換成 Bicep,讓檢閱和更新程序變得較不複雜。 Bicep 與 ARM 密切相關,因為在部署期間,每個 Bicep 檔案都會轉換成 ARM 範本。 如需轉換 ARM 範本的詳細資訊,請參閱將 ARM 範本 JSON 反向組譯為 Bicep。
附註
已知的 Bicep 限制:
- Bicep 檔案不支援
id屬性。 將 ARM JSON 反向組譯至 Bicep 時,請確定您沒有此屬性。 例如,從 Microsoft Sentinel 匯出的分析規則範本會具有需要移除的id屬性。 - 將 ARM JSON 結構描述變更為版本
2019-04-01,以在反向組譯時獲得最佳結果。
驗證您的內容
您可以透過存放庫連線來部署下列 Microsoft Sentinel 內容類型:
- 分析規則
- 自動化規則
- 搜捕查詢
- 剖析器
- 劇本
- 活頁簿
重要事項
只有在目的地工作區與存放庫所連接的工作區位於相同資源群組時,使用 Microsoft Sentinel 存放庫功能部署的分析規則才能使用跨工作區查詢。
提示
本文「不會」說明如何從頭開始建立這些類型的內容類型。 如需詳細資訊,請參閱每個內容類型的相關 Microsoft Sentinel GitHub Wiki。
存放庫部署不會驗證內容,但會確認其為正確的 JSON 或 Bicep 格式。 部署之前,請務必先在 Microsoft Sentinel 內測試您的內容。
範例存放庫可供列出每個內容類型的範本使用。 存放庫也會示範存放庫連線的進階功能使用方式。 如需詳細資訊,請參閱 Microsoft Sentinel CI/CD 存放庫範例。
連線和部署的上限
- 每個 Microsoft Sentinel 工作區目前的存放庫連線數限制為五個。
- 每個 Azure 資源群組在其部署歷程記錄中限制為 800 個部署。 如果您有大量範本部署一或多個資源群組,您可能會看到
Deployment QuotaExceeded錯誤。 如需詳細資訊,請參閱 Azure Resource Manager 範本文件中的 DeploymentQuotaExceeded。
使用智慧部署改善效能
提示
若要確保智慧部署可在 GitHub 中運作,工作流程必須具有存放庫的讀取和寫入權限。 如需詳細資訊,請參閱管理存放庫的 GitHub Actions 設定。
智慧部署功能是一項後端功能,可對已連線存放庫的內容檔案所進行的修改進行主動追蹤來改善效能。 其會使用存放庫中 .sentinel 資料夾內的 CSV 檔案來稽核每個認可。 工作流程可避免將上次部署後從未修改過的內容重新部署。 此流程可改善您的部署效能,並避免竄改工作區中未變更的內容,例如重設分析規則的動態排程。
新建立的連線上預設會啟用智慧部署。 如果您想要每次在觸發部署時,都部署所有原始檔控制內容,無論內容是否已修改過,請修改您的工作流程來停用智慧部署。 如需詳細資訊,請參閱自訂工作流程或管線。
考慮部署自訂選項
使用 Microsoft Sentinel 存放庫部署內容時,請考慮下列自訂選項。
自訂工作流程或管線
以下列其中一個方式自訂工作流程或管線:
- 設定不同的部署觸發程序
- 僅從指定工作區的特定根資料夾部署內容
- 排程定期執行工作流程
- 將不同的工作流程事件結合在一起
- 關閉智慧部署
這些自訂是在工作流程或管線特定的 .yml 檔案中定義。 如需如何實作的詳細資訊,請參閱自訂存放庫部署
自訂部署
觸發工作流程或管線之後,部署支援下列案例:
- 優先處理要部署的內容,再排列存放庫內容的其餘部分
- 從部署中排除內容
- 指定 ARM 範本參數檔案
這些選項可透過從工作流程或管線呼叫的 PowerShell 部署指令碼功能取得。 如需如何實作這些自訂的詳細資訊,請參閱自訂存放庫部署。
後續步驟
取得更多有關部署 Microsoft Sentinel 存放庫的範例和逐步指示。