你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
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 存储库示例。
虽然可以从头开始生成模板,但通常更容易从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-01、 2025-06-01 或 2025-07-01-preview ,以避免服务中断。 现有存储库连接不受影响。
后续步骤
获取有关部署Microsoft Sentinel存储库的更多示例和分步说明。