将漏洞评估扫描结果存储在可从防火墙和 VNet 后面访问的存储帐户中

适用于:Azure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics

如果要限制某些 VNet 或服务对 Azure 中的存储帐户的访问,需要启用相应的配置,以便对 SQL 数据库或 Azure SQL 托管实例的漏洞评估 (VA) 扫描可以访问该存储帐户。

注意

使用快速配置时不需要这些设置。

先决条件

SQL 漏洞评估服务需要具有对存储帐户的权限才能保存基线和扫描结果。

使用 SQL Server 托管标识

  • SQL Server 必须具有托管标识。
  • 存储帐户必须有 SQL 托管标识的角色分配作为存储 Blob 数据参与者
  • 应用设置时,VA 字段 storageContainerSasKey 和 storageAccountAccessKey 必须为空(使用存储帐户密钥或存储 SAS 密钥的配置对此方案无效)。

当你使用 Azure 门户保存 SQL VA 设置时,Azure 会检查你是否有权为托管标识分配一个新的角色分配作为存储上的存储 Blob 数据参与者。 如果分配了权限,Azure 将使用 SQL Server 托管标识,否则 Azure 将使用密钥方法(此方案不支持此方法)。

注意

  1. 此方案不支持用户分配的托管标识。
  2. 如果使用 Azure 存储生命周期管理策略,请勿将 VA 使用的容器上的文件移至存档访问层。 不支持读取存档访问层中存储的扫描结果或基线配置。

启用 Azure SQL 数据库 VA 扫描对存储帐户的访问权限

如果已将 VA 存储帐户配置为仅可由某些网络或服务访问,需要确保 Azure SQL 数据库的 VA 扫描能够在存储帐户上存储扫描。 可以使用现有存储帐户,也可以创建新的存储帐户来存储逻辑 SQL Server 上所有数据库的 VA 扫描结果。

注意

漏洞评估服务在存储帐户需要存储访问密钥的情况下,无法访问受防火墙或 VNet 保护的存储帐户。

转到包含存储帐户的“资源组”,然后访问“存储帐户”窗格。 在“设置”下,选择“防火墙和虚拟网络”。

确保已选中“允许受信任的 Microsoft 服务访问此存储帐户”。

Screenshot showing Firewall and virtual networks dialog box, with Allow trusted Microsoft services to access this storage account selected.

若要了解正在使用的存储帐户,请执行以下步骤:

  1. 转到 Azure 门户中的“SQL Server”窗格。
  2. 在“安全性”下,选择“Defender for Cloud”。
  3. 选择“配置” 。

Screenshot showing setup vulnerability assessment.

将 Azure SQL 托管实例的 VA 扫描结果存储在可从防火墙或 VNet 后面访问的存储帐户中

由于 Azure SQL 托管实例不是受信任的 Microsoft 服务,并且具有与存储帐户不同的 VNet,执行 VA 扫描将导致错误。

若要在 Azure SQL 托管实例上支持 VA 扫描,请执行以下步骤:

  1. 在“SQL 托管实例”窗格的“概述”标题下,单击“虚拟网络/子网”链接。 这会转到“虚拟网络”窗格。

    Screenshot of the SQL managed instance overview section.

  2. 在“设置”下,选择“子网”。 在新窗格中单击“+ 子网”以添加子网。 有关详细信息,请参阅管理子网

    Screenshot shows a list of subnets and the add subnet option.

  3. 新子网应具有以下配置:

    Screenshot shows a subnet called VA and its settings.

    • NAT 网关:无
    • 网络安全组:无
    • 路由表:无
    • 服务终结点 - 服务:已选择“无”
    • 子网委派 - 将子网委派给服务:无
  4. 转到 SQL VA 配置为存储扫描结果的存储帐户,单击“专用终结点连接”选项卡,然后单击“+ 专用终结点”

    Screenshot shows Firewalls and virtual networks settings.

    Screenshot shows add private endpoint button.

  5. 选择专用终结点的详细信息(建议将其放在同一 RG 和同一区域中)。

    Screenshot shows private endpoint creation Basics tab.

  6. 为目标子资源选择 Blob

    Screenshot shows private endpoint creation Resource tab.

  7. 选择 SQL MI 的虚拟网络(步骤 1)并选择你创建的子网(步骤 3),选择“与专用 DNS 区域集成”(应该是默认设置),选择其他默认值:

    Screenshot shows private endpoint creation Virtual Network tab.

  8. 继续转到“查看 + 创建”选项卡,单击“创建”。 部署完成后,应会在存储帐户的“网络”部分下的“专用终结点连接”选项卡中看到:

    Screenshot shows storage Networking Private endpoint connections post configuration.

现在,你应该能够在存储帐户中存储 Azure SQL 托管实例的 VA 扫描。

排查与漏洞评估扫描相关的常见问题。

无法保存漏洞评估设置

如果存储帐户不满足某些先决条件或你的权限不足,则可能无法保存对漏洞评估设置进行的更改。

存储帐户要求

保存漏洞评估扫描结果的存储帐户必须满足以下要求:

  • 类型:StorageV2(常规用途 V2)或存储(常规用途 V1)
  • 性能:标准(仅限)
  • 区域:存储必须与 Azure SQL Server 实例位于同一区域。

如果未满足这些要求中的任何一项,则无法保存对漏洞评估设置进行的更改。

权限

保存对漏洞评估设置进行的更改需要以下权限:

  • SQL 安全管理器
  • 存储 Blob 数据读取者
  • 存储帐户的所有者角色

设置新的角色分配需要所有者或用户管理员对存储帐户的访问权限以及以下权限:

  • 存储 Blob 数据所有者

存储帐户在漏洞评估设置中不可见,无法进行选择

由于以下原因,存储帐户可能不会在存储帐户选取器中显示:

  • 要查找的存储帐户不在所选订阅中。
  • 要查找的存储帐户与 Azure SQL Server 实例不在同一区域。
  • 存储帐户没有 Microsoft.Storage/storageAccounts/read 权限。

如果没有所需的权限,或者使用不支持打开或显示扫描结果的浏览器,则可能无法打开通知电子邮件中有关扫描结果的链接或查看扫描结果。

所需的权限

需要以下权限才可打开电子邮件通知中有关扫描结果的链接或查看扫描结果:

  • SQL 安全管理器
  • 存储 Blob 数据读取者

浏览器要求

Firefox 浏览器不支持打开或显示扫描结果视图。 建议使用 Microsoft Edge 或 Chrome 查看漏洞评估扫描结果。

后续步骤