排查 Defender for SQL on Machines 中的计算机保护问题

如果在计算机上启用 Defender for SQL Server 且某些 SQL 实例未处于受保护状态,请使用本文对部署问题进行故障排除。

在开始故障排除步骤之前,请确保满足以下条件:

步骤 1:了解如何创建资源

计算机上的 Defender for SQL Server 会自动创建资源,如图所示。

显示资源及其创建级别的关系图。

表中汇总了资源:

资源类型 已创建级别
资源组 - 在中国北部 Azure 区域创建 订阅级别
托管标识 - 在每个 Azure 区域中创建用户分配的托管标识 订阅级别
Log Analytics 工作区 - 使用默认工作区或自定义工作区。 订阅级别
数据收集规则 (DCR) - 为每个工作区创建 订阅级别
数据收集规则关联 (DCRA) 在每个 SQL Server 实例上定义
Azure Monitoring Agent (AMA) 扩展安装在每个 SQL Server 实例上
Defender for SQL 扩展 扩展安装在每个 SQL Server 实例上

步骤 2:确保允许扩展

若要确保保护按预期工作,请确保组织拒绝策略不会阻止以下扩展:

  • Defender for SQL(IaaS 和 Arc)
    • 发布者:Microsoft.Azure.AzureDefenderForSQL
    • 类型:AdvancedThreatProtection.Windows
  • SQL IaaS 扩展 (IaaS)
    • 发布者:Microsoft.SqlServer.Management
    • 类型:SqlIaaSAgent
  • SQL IaaS 扩展 (Arc)
    • 发布者:Microsoft.AzureData
    • 类型:WindowsAgent.SqlServer
  • AMA 扩展(IaaS 和 Arc)
    • 发布者:Microsoft.Azure.Monitor
    • 类型:AzureMonitorWindowsAgent

步骤 3:确保中国北区被允许

启用计划时,Azure 将在中国北部区域创建资源组。 确保没有拒绝策略阻止此区域。

步骤 4:验证资源命名约定

计算机上的 Defender for SQL Server 对资源使用特定的命名约定。 确保组织不会阻止这些命名约定,也不会修改任何自动创建的资源。

  • DCR:MicrosoftDefenderForSQL--dcr
  • DCRA:/Microsoft.Insights/MicrosoftDefenderForSQL-RulesAssociation
  • 资源组:DefaultResourceGroup-
  • Log Analytics 工作区:D4SQL--

Defender for SQL 使用 MicrosoftDefenderForSQL 作为 createdBy 数据库标记

步骤 5:识别订阅级别的错误配置

若要识别哪些订阅存在配置错误,请使用机器上的 SQL 服务器 AMA 助手工作簿

  1. 打开SQL Servers on Machines AMA Helper 活页簿

    SQL Servers on Machines AMA 帮助程序工作簿主页的屏幕截图。

  2. 在“订阅概述”中,查看订阅级别的错误配置。

    • Azure 虚拟机上的 SQL Server - 显示包含 Azure 虚拟机的订阅
    • 支持 Arc 的 SQL Server - 显示包含支持 Azure Arc 的虚拟机的订阅。

    订阅会根据你的特定环境显示在这些选项卡上。

    显示 Azure 虚拟机上的 SQL Server 工作簿页面中应导航至何处的屏幕截图。

  3. 查看每个订阅的组件配置。

    • 订阅中的 SQL Server 实例数。
    • 安装了 Defender for SQL 扩展的实例。
    • 安装了 AMA 扩展的实例。
    • 为订阅中的每个工作区创建的 DCR(在所有区域中)。
    • 为每个 SQL 实例创建的 DCRA。
    • 在订阅级别为每个区域创建的托管标识。
    • 在订阅级别上为每个区域创建的 Log Analytics 工作区。
    • 为订阅启用 AMA 自动预配。
    • 为订阅启用 Defender for SQL。
  4. 对于每个订阅,请检查哪个组件与预期的配置不匹配,例如 0/1、10/15 或 No。 在我们的示例屏幕截图中,演示订阅在 DCRA 0/1 中存在配置错误的问题。

    SQL Servers on Machines AMA 帮助程序工作簿结果的屏幕截图。

找到配置错误的订阅后,请先在订阅级别解析错误配置,然后在资源级别和扩展安装级别解决错误配置。

步骤 6:解决订阅级别的错误配置

找到错误配置后,首先解决 DCR 问题,然后是工作区问题,最后在订阅级别解决身份问题。

按正确的顺序修复错误配置。 DCR 问题的解决依赖于工作区问题的解决,而工作区问题的解决依赖于标识问题的解决。 如果尝试不按顺序解决这些错误配置,则无法解决。

  1. 导航到策略>符合性

  2. 选择“范围”

    显示在策略和符合性页面上选择范围的位置的屏幕截图。

  3. 在“范围”中,选择相关的订阅。

  4. 在“符合性”页面上,根据工作区配置选择策略:

    • 默认工作区:SQL 虚拟机上的 Defender for SQL 和已启用 Arc 的 SQL Server
    • 自定义工作区:SQL 虚拟机上的 Defender for SQL 和已启用 Arc 的 SQL Server - 自定义

    显示页面上找到错误配置的位置的屏幕截图。

  5. 按以下顺序搜索并解决每个不合规问题:标识,>工作区,>DCR

  6. 如下所示修复每个问题:

    • 标识 - Create and assign a built-in user-assigned managed identity.
    • 工作区 - Configure the Microsoft Defender for SQL Log Analytics workspace
    • DCR - Configure SQL Virtual Machines to automatically install Microsoft Defender for SQL and DCR with a Log Analytics workspaceConfigure Arc-enabled SQL Servers to automatically install Microsoft Defender for SQL and DCR with a Log Analytics workspace
  7. 对于不符合的每个策略,请查看符合性原因,并选择“创建修正任务”解决此问题。

    显示在页面上创建修正任务的位置的屏幕截图。

  8. 填写相关信息。

  9. 选择“修正”。

  10. 针对每个不合规的策略和订阅重复这些步骤。

使用 PowerShell 部署脚本输入自定义值

如果无法通过工作簿解决订阅问题,Defender for SQL Servers on Machines 会提供一个 PowerShell 部署脚本,可让你输入自己的工作区、DCR 和用户标识的值。 若要使用 PowerShell 脚本,请按照本页上的说明进行操作。

步骤 7:解决资源级别的错误配置

在订阅级别解决错误配置后,请在资源级别解决错误配置,包括 DCRA 配置错误,以及不完整的 AMA 或 Defender for SQL 扩展部署。

排查扩展配置错误问题

  1. 在 Azure 门户中,导航到策略>符合性

  2. 选择“范围”

  3. 在下拉列表中,选择存在配置错误的订阅。

  4. 搜索并选择“SQL 虚拟机上的 Defender for SQL 和已启用 Arc 的 SQL Server 计划”

  5. 选择不合规的策略名称。

    • Defender for SQL 扩展 - Create and assign a built-in user-assigned managed identity
    • AMA 扩展:- Configure SQL Virtual Machines to automatically install Azure Monitor AgentConfigure Arc-enabled SQL Servers to automatically install Azure Monitor Agent
  6. 对于不符合的每个策略,请查看符合性原因,并选择“创建修正任务”解决此问题。

排查 DCRA 配置错误

  1. 在 Azure 门户中,搜索并选择数据收集规则

  2. 选择“订阅等于”> 选择相关订阅。

    显示选择“订阅等于”位置的屏幕截图。

  3. 选择 应用

  4. 找到并选择相关的 DCR。 DCR 命名约定遵循以下格式:MicrosoftDefenderForSQL-region-dcr

  5. 选择“配置”>“资源”。

    显示选择配置和资源的位置的屏幕截图。

  6. 选择“+ 添加”

    显示添加按钮所在位置的屏幕截图。

  7. 在“资源类型”下拉列表中,选择“计算机 - Azure Arc”,并根据部署选择“虚拟机”。

    显示在何处按“Azure Arc 计算机”和“虚拟机”进行筛选的屏幕截图。

  8. 展开每个资源组并选择每台计算机。

    显示单独选择的每台计算机的屏幕截图。

  9. 选择 应用

步骤 8:重新验证保护状态

完成此页上的所有步骤后,重新验证每个 SQL Server 实例的保护状态