你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Microsoft Sentinel 存储库管理内容即代码

Microsoft Sentinel存储库允许从外部源代码管理存储库部署和管理自定义Sentinel内容,以便持续集成/持续交付 (CI/CD) 。 此自动化无需手动过程来更新和部署工作区中的自定义内容。 内容即代码的子集是 检测 即代码 (DaC) 。 Microsoft Sentinel存储库也实现 DaC。

有关Sentinel内容的详细信息,请参阅关于Microsoft Sentinel内容和解决方案

Microsoft Sentinel存储库的工作原理

可以从连接到Microsoft Sentinel的外部源代码管理存储库部署这些Microsoft Sentinel自定义内容类型:

  • 分析规则
  • 自动化规则
  • 搜寻查询
  • 解析 器
  • 剧本
  • 工作簿

对Microsoft Sentinel存储库中的内容所做的汇报将同步到Microsoft Sentinel工作区,并通过Microsoft Sentinel门户覆盖对该内容所做的任何更改。 Microsoft Sentinel存储库将成为连接工作区中自定义内容的单一事实来源

规划存储库连接

Microsoft Sentinel存储库需要仔细规划,以确保你拥有从工作区到要连接的存储库 (存储库) 的适当权限。

  • 仅支持与 GitHub 和 Azure DevOps 存储库的连接。
  • 需要协作者访问 GitHub 存储库或项目管理员对 Azure DevOps 存储库的访问权限。
  • Microsoft Sentinel应用程序需要对存储库进行授权。
  • 必须为 GitHub 启用操作。
  • 必须为 Azure DevOps 启用管道。
  • Azure DevOps 连接必须与Microsoft Sentinel工作区位于同一租户中。

创建与存储库的连接需要在包含Microsoft Sentinel工作区的资源组中具有所有者角色。

如果在不是参与者的公共存储库中找到内容,请先将内容导入、创建分支或克隆到您是参与者的存储库。 然后将存储库连接到Microsoft Sentinel工作区。 有关详细信息,请参阅 从存储库部署自定义内容

最大连接数和部署数

  • 每个Microsoft Sentinel工作区当前限制为五个存储库连接
  • 每个Azure资源组在其部署历史记录中限制为 800 个部署。 如果一个或多个资源组中有大量模板部署,则可能会看到错误 Deployment QuotaExceeded 。 有关详细信息,请参阅Azure 资源管理器模板文档中的 DeploymentQuotaExceeded

规划存储库内容

Microsoft Sentinel存储库支持部署存储为 Bicep 文件Azure 资源管理器 (ARM) 模板的内容。 建议使用 Bicep,它更直观,更易于描述Azure资源和Microsoft Sentinel内容。

每个内容类型的模板都具有特定的结构和参数名称,如Sentinel资源模板参考中所述。 有关每种内容类型的示例,请参阅 RepositoriesSampleContent 存储库

我们提供了一个示例存储库,其中包含列出的每种内容类型的模板。 存储库还演示了如何使用存储库连接的高级功能。 有关详细信息,请参阅 Microsoft Sentinel CI/CD 存储库示例

成功的存储库连接的屏幕截图。显示 RepositoriesSampleContent。此屏幕截图是在将示例从 SentinelCICD 存储库导入到 FourthCoffee 组织中的专用 GitHub 存储库之后的。

虽然可以从头开始生成模板,但通常更容易从Sentinel公共 GitHub 存储库 YAML 文件或现Microsoft Sentinel内容开始。 下表概述了如何转换 ARM 模板以用于 Microsoft Sentinel 存储库。

内容类型 从Sentinel公共 YAML 转换 从Sentinel导出 模板参考 示例模板
分析规则 PowerShell 脚本 导出功能PowerShell 脚本 Reference ARM 模板
自动化规则 不适用 导出功能PowerShell 脚本 Reference 不适用
搜寻查询 PowerShell 脚本 Azure CLI 命令 Reference 示例内容
解析 器 ASIM PowerShell 脚本 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 存储库功能部署的分析规则才能使用跨工作区查询。

有关从头开始创建自定义内容的信息,请参阅每种内容类型的相关Microsoft Sentinel GitHub wiki

使用智能部署提高性能

提示

为确保智能部署在 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-012025-06-012025-07-01-preview ,以避免服务中断。 现有存储库连接不受影响。

后续步骤

获取有关部署Microsoft Sentinel存储库的更多示例和分步说明。