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

使用 Microsoft Sentinel 存储库管理自定义内容(公共预览版)

Microsoft Sentinel 存储库功能提供了用于将 Sentinel 内容作为代码部署和管理的中心体验。 存储库允许连接到外部源代码管理,以实现持续集成/持续交付 (CI/CD)。 这种自动化消除了跨工作区更新和部署自定义内容的手动流程的负担。 有关 Sentinel 内容的详细信息,请参阅关于 Microsoft Sentinel 内容和解决方案

重要

Microsoft Sentinel 存储库功能目前以预览版提供。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款

计划存储库连接

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

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

创建与存储库的连接需要在包含 Microsoft Sentinel 工作区的资源组中需要具有“所有者”角色。 如果你无法在自己的环境中使用“所有者”角色,请改为结合使用“用户访问管理员”和“Sentinel 参与者”角色来创建连接

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

规划你的存储库内容

存储库内容必须存储为 Bicep 文件Azure 资源管理器 (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 GitHub wiki

存储库部署不会验证内容,但是它会确认内容是否采用正确的 JSON 或 Bicep 格式。 在部署之前,请务必在 Microsoft Sentinel 中测试内容。

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

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

最大连接数和部署数

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

使用智能部署提高性能

提示

为了确保智能部署在 GitHub 中正常工作,工作流必须对存储库具有读取和写入权限。 有关更多详细信息,请参阅管理存储库的 GitHub Actions 设置

智能部署功能是一种后端功能,对于已连接的存储库的内容文件,该功能通过主动跟踪对其所做的修改来提高性能。 它使用存储库的 .sentinel 文件夹中的 CSV 文件审核每个提交。 该工作流可避免重新部署自上次部署以来尚未修改的内容。 此过程可以提高部署性能,阻止篡改工作区中未更改的内容(例如重置分析规则的动态计划)。

新建的连接上将默认启用智能部署。 如果希望每次在触发部署时都部署所有源代码管理内容,而无论该内容是否已修改,请修改工作流来禁用智能部署。 有关详细信息,请参阅自定义工作流或管道

考虑部署自定义选项

使用 Microsoft Sentinel 存储库部署内容时,请考虑以下自定义选项。

自定义工作流或管道

通过以下方式之一自定义工作流或管道:

  • 配置不同的部署触发器
  • 仅从给定工作区的特定根文件夹部署内容
  • 安排定期运行工作流
  • 将不同的工作流事件组合在一起
  • 关闭智能部署

这些自定义项在特定于工作流或管道的 .yml 文件中定义。 有关如何实现的详细信息,请参阅自定义存储库部署

自定义部署

触发工作流或管道后,部署可支持以下方案:

  • 在部署其余存储库内容之前优先部署的内容
  • 从部署中排除内容
  • 指定 ARM 模板参数文件

可通过从工作流或管道调用的 PowerShell 部署脚本的功能来使用这些选项。 有关如何实现这些自定义操作的详细信息,请参阅自定义存储库部署

后续步骤

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