你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft Sentinel存储库允许从外部源代码管理存储库部署和管理自定义 Sentinel 内容,以便持续集成/持续交付(CI/CD)。 此自动化无需手动过程来更新和部署工作区中的自定义内容。 内容即代码的一个子集是检测即代码 (DaC)。 Microsoft Sentinel Repositories也实现 DaC。
有关 Sentinel 内容的详细信息,请参阅 About Microsoft Sentinel 内容和解决方案。
重要说明
Microsoft Sentinel repositories 功能目前为 PREVIEW。 请参阅 Microsoft Azure 预览版的补充使用条款,以了解适用于 beta 版、预览版或尚未正式发布的 Azure 功能的其他法律条款。
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启用Actions。
- 必须为Azure DevOps启用管道。
- Azure DevOps连接必须与Microsoft Sentinel工作区位于同一租户中。
创建与存储库的连接需要在包含 Microsoft Sentinel 工作区的资源组中具有 Owner 角色。
如果你在你不是参与者的公共存储库中发现内容,请首先将内容导入、分叉或克隆到你是参与者的存储库。 然后将存储库连接到Microsoft Sentinel工作区。 有关详细信息,请参阅从存储库部署自定义内容。
最大连接数和部署数
- 每个 Microsoft Sentinel 工作区目前仅限于 五个存储库连接。
- 每个 Azure 资源组的部署历史记录限制为800 个部署。 如果你的一个或多个资源组中具有大量的模板部署,则可能会遇到
Deployment QuotaExceeded错误。 有关详细信息,请参阅 Azure 资源管理器模板文档中的 DeploymentQuotaExceeded。
规划你的存储库内容
Microsoft Sentinel 存储库支持将存储的内容部署为 Bicep 文件 或 Azure Resource Manager (ARM) 模板。 建议使用更直观的Bicep,以便更轻松地描述Azure资源和Microsoft Sentinel内容。
每个内容类型的模板都有一个特定的结构和参数名称,如 Sentinel 资源模板参考中所述。 有关每种内容类型的示例,请参阅 RepositoriesSampleContent 存储库。
我们提供了一个示例存储库,其中包含列出的每种内容类型的模板。 存储库还演示如何使用存储库连接的高级功能。 有关详细信息,请参阅 Microsoft Sentinel CI/CD 存储库示例。
虽然可以从头开始生成模板,但通常更容易从 Sentinel Public GitHub 存储库的 YAML 文件或开箱即用的 Microsoft Sentinel 内容开始使用。 下表概述了如何转换用于 Microsoft Sentinel 存储库的 ARM 模板。
| 内容类型 | 从 Sentinel 公共 YAML 转换 | 从 Sentinel 导出 | 模板参考 | 示例模板 |
|---|---|---|---|---|
| 分析规则 | PowerShell 脚本 | Export 功能或PowerShell 脚本 | Reference | ARM 模板 |
| 自动化规则 | N/A | Export 功能或 PowerShell 脚本 | Reference | N/A |
| 搜寻查询 | PowerShell 脚本 | Azure CLI 命令 | Reference | 示例内容 |
| 解析 器 | ASIM PowerShell 脚本 | Azure CLI 命令 | Reference | Templates |
| 剧本 | N/A | PowerShell 实用工具 | Reference | N/A |
| 工作簿 | N/A | 将工作簿导出为 ARM 模板 | Reference | N/A |
重要说明
Bicep注意事项:
- 若要使用Bicep文件,如果在 2024 年 11 月 1 日之前创建了连接,则需要更新存储库连接。 必须移除并重新创建存储库连接才能进行更新。
- Bicep文件不支持
id属性。 将 ARM JSON 反编译为Bicep时,请确保没有此属性。 例如,从Microsoft Sentinel导出的分析规则模板具有需要删除的id属性。 - 请将 ARM JSON 架构更改为版本
2019-04-01,以便在反编译时获得最佳结果。
重要说明
仅当目标工作区与连接到存储库的工作区位于同一资源组中时,使用 Microsoft Sentinel repositories 功能部署的分析规则才能使用跨工作区查询。
有关从头开始创建自定义内容的信息,请参阅每个内容类型的相关 Microsoft Sentinel GitHub wiki。
使用智能部署提高性能
提示
为了确保智能部署在GitHub中正常工作,工作流必须对存储库具有读取和写入权限。 有关更多详细信息,请参阅管理存储库GitHub Actions设置。
智能部署功能是一种后端功能,对于已连接的存储库的内容文件,该功能通过主动跟踪对其所做的修改来提高性能。 它使用存储库的 .sentinel 文件夹中的 CSV 文件审核每个提交。 该工作流可避免重新部署自上次部署以来尚未修改的内容。 此过程可以提高部署性能,阻止篡改工作区中未更改的内容(例如重置分析规则的动态计划)。
新建的连接上将默认启用智能部署。 如果希望每次在触发部署时都部署所有源代码管理内容,而无论该内容是否已修改,请修改工作流来禁用智能部署。 有关详细信息,请参阅自定义工作流或管道。
考虑部署自定义选项
使用 Microsoft Sentinel 存储库部署内容时,请考虑以下自定义选项。
自定义工作流或管道
通过以下方式之一自定义工作流或管道:
- 配置不同的部署触发器
- 仅从给定工作区的特定根文件夹部署内容
- 安排定期运行工作流
- 将不同的工作流事件组合在一起
- 关闭智能部署
这些自定义项在特定于工作流或管道的 .yml 文件中定义。 有关如何实现的详细信息,请参阅自定义存储库部署
自定义部署
触发工作流或管道后,部署可支持以下方案:
- 在部署其余存储库内容之前优先部署的内容
- 从部署中排除内容
- 指定 ARM 模板参数文件
可通过从工作流或管道调用的 PowerShell 部署脚本的功能来使用这些选项。 有关如何实现这些自定义操作的详细信息,请参阅自定义存储库部署。
使用 API 管理Microsoft Sentinel存储库
有关使用 API 管理 Microsoft Sentinel 存储库的信息,请参阅 Microsoft Sentinel REST API 中的 Source Control 和 Source Controls 操作。
重要说明
从 2026 年 6 月 1 日开始,不再支持 Microsoft Sentinel 存储库使用的旧 API 版本。 如果使用 API 创建和管理存储库连接,请在 2026 年 6 月 1 日之前过渡到 API 版本 2025-09-01、 2025-06-01 或 2025-07-01-preview ,以避免服务中断。 现有存储库连接不受影响。
后续步骤
获取有关部署Microsoft Sentinel存储库的更多示例和分步说明。
