安全性 | Azure Arc 启用的 SQL Server
本文介绍 Azure Arc 启用的 SQL Server 组件的安全体系结构。
有关 Azure Arc 启用的 SQL Server 的背景信息,请查看概述 | Azure Arc 启用的 SQL Server。
代理和扩展
Azure Arc 启用的 SQL Server 的最重要软件组件包括:
- Azure Connected Machine 代理
- 适用于 SQL Server 的 Azure 扩展
Azure Connected Machine Agent 将服务器连接到 Azure。 SQL Server 的 Azure 扩展将有关 SQL Server 的数据发送到 Azure,并通过 Azure 中继信道从 Azure 检索命令,以对 SQL Server 实例采取措施。 代理和扩展可让你管理位于 Azure 外部任何位置的实例和数据库。 具有代理和扩展的 SQL Server 实例由 Azure Arc 启用。
代理和扩展安全地连接到 Azure,以与 Microsoft 托管的 Azure 服务建立信道。 代理可以通过以下方式通信:
- 可通过 Azure Express Route 配置的 HTTPS 代理服务器
- Azure 专用链接
- 具有或不带 HTTPS 代理服务器的互联网
有关详细信息,请查看 Connected Machine Agent 文档:
对于数据收集和报告,某些服务需要 Azure Monitoring 代理 (AMA) 扩展。 扩展需要连接到 Azure Log Analytics。 需要 AMA 的两项服务包括:
- Microsoft Defender for Cloud
- SQL Server 最佳做法评估
SQL Server 的 Azure 扩展可让你可以发现粒度级别上所有 SQL Server 实例的主机或 OS 级别(例如 Windows Server 故障转移群集)配置更改。 例如:
- 主机上的 SQL Server 引擎实例
- SQL Server 实例内的数据库
- 可用性组
SQL Server 的 Azure 扩展可让你通过收集清单、监视等任务和其他任务的数据,在任意位置集中管理、保护和治理 SQL Server 实例。 有关收集的数据的完整列表,请查看数据收集和报告。
下图说明了已启用 Azure Arc 的 SQL Server 的体系结构。
组件
Azure Arc 启用的 SQL Server 实例已集成组件和服务,这些组件和服务在服务器上运行并帮助连接到 Azure。 除了代理服务之外,已启用的实例还包含本部分中列出的组件。
资源提供程序
资源提供程序 (RP) 公开了一组 REST 操作,它们可通过 ARM API 实现特定 Azure 服务的功能。
若要使 SQL Server 的 Azure 扩展正常运行,请注册以下 2 个 RP:
Microsoft.HybridCompute
RP:管理已启用 Azure Arc 的服务器资源的生命周期,包括扩展安装、连接的计算机命令执行,并执行其他管理任务。Microsoft.AzureArcData
RP:根据 Azure Arc 资源从 SQL Server 的 Azure 扩展收到的清单和使用情况数据来管理 Azure Arc 资源启用的 SQL Server 的生命周期。
Azure Arc 数据处理服务
Azure Arc 数据处理服务 (DPS) 是一种 Azure 服务,用于接收 SQL Server 的 Azure 扩展在已连接 Arc 的服务器上提供的 SQL Server 的相关数据。 DPS 执行下列任务:
- 处理 SQL Server 的 Azure 扩展发送到区域终结点的清单数据,并通过 ARM API 和 Microsoft.AzureArcData RP 相应地更新 SqlServerInstance 资源。
- 处理 SQL Server 的 Azure 扩展发送到区域终结点的使用情况数据,并将计费请求提交到 Azure 商业服务。
- 监视 ARM 中的用户创建的 SQL Server 物理核心许可证资源,并根据许可证状态将计费请求提交到 Azure 商业服务。
Azure Arc 启用的 SQL Server 需要从代理中的 SQL Server 的 Azure 扩展到 DPS(*.<region>.arcdataservices.com
TCP 端口 443)的出站连接。 有关特定通信要求,请查看连接到 Azure Arc 数据处理服务。
部署程序
部署程序在初始安装和配置更新期间启动 SQL Server 的 Azure 扩展。
SQL Server 的 Azure 扩展服务
SQL Server 的 Azure 扩展服务在主机服务器上的后台运行。 服务配置取决于操作系统:
操作系统:Windows
- 服务名称:Microsoft SQL Server 扩展服务
- 显示名称:Microsoft SQL Server 扩展服务
- 运行方式:本地系统
- 日志位置:
C:/ProgramData/GuestConfig/extension_logs/Microsoft.AzureData.WindowsAgent.SqlServer
操作系统:Linux
- 服务名称:SqlServerExtension
- 显示名称:Azure SQL Server 扩展服务
- 运行方式:根
- 日志位置:
/var/lib/GuestConfig/extension_logs/Microsoft.AzureData.LinuxAgent.SqlServer-<Version>/
功能
Azure Arc 启用的 SQL Server 实例执行以下任务:
清点所有 SQL Server 实例、数据库和可用性组
SQL Server 的 Azure 扩展服务每小时都会将清单上传到数据处理服务。 清单包括 SQL Server 实例、Always On 可用性组和数据库元数据。
上传使用情况
SQL Server 的 Azure 扩展服务每 12 小时将使用相关数据上传到数据处理服务。
已启用 Arc 的服务器安全性
有关安装、管理和配置已启用 Azure Arc 的服务器的特定信息,请查看已启用 Arc 的服务器安全概述。
Azure Arc 启用的 SQL Server 安全性
SQL Server 的 Azure 扩展组件
SQL Server 的 Azure 扩展由两个主要组件(部署程序和扩展服务)组成。
部署程序
部署程序在初始安装期间以及安装新的 SQL Server 实例或启用/禁用功能时启动扩展。 在安装、更新或卸载期间,在主机服务器上运行的 Arc 代理会运行部署程序以执行某些操作:
- 安装
- 启用
- 更新
- 禁用
- 卸载
部署程序在 Azure Connected Machine Agent 服务的上下文中运行,因此运行方式为 Local System
。
扩展服务
扩展服务收集清单和数据库元数据(仅限 Windows),并每小时将其上传到 Azure。 它在 Windows 上以 Local System
形式运行,在 Linux 上以根形式运行。 扩展服务作为已启用 Arc 的 SQL Server 服务的一部分提供各种功能。
使用最小特权运行
可以将扩展服务配置为以最小特权运行。 此选项应用最低权限原则,可在 Windows 服务器上预览。 有关如何配置最低权限模式的详细信息,请查看启用最低特权(预览版)。
为最低特权配置后,扩展服务作为 NT Service\SQLServerExtension
服务帐户运行。
NT Service\SQLServerExtension
帐户为本地的 Windows 服务帐户:
- 启用最低特权选项后,由 SQL Server 的 Azure 扩展部署程序创建和管理。
- 在 Windows 操作系统上已授予运行 SQL Server 服务的 Azure 扩展所需的最低权限和特权。 仅有权访问用于读取和存储配置或写入日志的文件夹和目录。
- 利用专供具有最低所需权限的 SQL Server 的 Azure 扩展服务帐户使用的新登录,在 SQL Server 中授予的连接和查询权限。 最低权限取决于启用的功能。
- 当权限不再是必需时更新。 例如,如果禁用某项功能、禁用最低特权配置或卸载 SQL Server 的 Azure 扩展,则会撤销权限。 吊销可确保不再需要权限后,权限不再存在。
有关权限的完整列表,请参阅配置 Windows 服务帐户和权限。
扩展到云通信
启用 Arc 的 SQL Server 需要与 Azure Arc 数据处理服务建立出站连接。
每个虚拟或物理服务器都需要与 Azure 通信。 具体而言,它们需要连接到:
- URL:
*.<region>.arcdataservices.com
- 端口:443
- 方向:出站
- 身份验证提供程序:Microsoft Entra ID
要获取区域终结点的区域段,请从 Azure 区域名称中删除所有空格。 例如,“美国东部 2”区域,区域名称为 eastus2
。
例如:*.<region>.arcdataservices.com
应位于“美国东部 2”区域中的 *.eastus2.arcdataservices.com
。
有关受支持区域的列表,请查看支持的 Azure 区域。
有关所有区域的列表,请运行以下命令:
az account list-locations -o table
功能级别安全性方面
不同的功能和服务具有特定的安全配置方面。 本部分讨论以下功能的安全方面:
审核活动
可以从 Azure 门户中的 Azure Arc 启用的 SQL Server 资源的服务菜单中访问活动日志。 活动日志捕获 Azure Resource Manager 中已启用 Arc 的 SQL Server 资源的审核信息和更改历史记录。 有关详细信息,请查看使用 Azure Arc 启用的 SQL Server 活动日志。
最佳做法评估
最佳做法评估具有以下要求:
确保基于 Windows 的 SQL Server 实例已连接到 Azure。 按照自动将 SQL Server 连接到 Azure Arc 中的说明进行操作。
注意
最佳做法评估当前限用于在 Windows 计算机上运行的 SQL Server。 评估目前不适用于 Linux 计算机上的 SQL Server。
如果服务器托管单个 SQL Server 实例,请确保 SQL Server 的 Azure 扩展 (
WindowsAgent.SqlServer
) 的版本是 1.1.2202.47 ”或更高版本。如果服务器托管多个 SQL Server 实例,请确保适用于 SQL Server 的 Azure 扩展 (
WindowsAgent.SqlServer
) 的版本是比 1.1.2231.59 更高的版本。要检查 SQL Server 的 Azure 扩展版本并更新到最新版本,请查看升级扩展。
如果服务器托管 SQL Server 的命名实例,SQL Server Browser 服务必须处于运行状态。
Log Analytics 工作区必须与 Azure Arc 启用的 SQL Server 资源位于同一订阅中。
配置 SQL 最佳做法评估的用户必须具有以下权限:
- Log Analytics 工作区资源组或订阅上的 Log Analytics 参与者角色。
- 已启用 Arc 的 SQL Server 实例的资源组或订阅上的 Azure Connected Machine 资源管理员角色。
- Log Analytics 工作区的资源组或订阅上或启用了 Azure Arc 的计算机的订阅上的监视参与者角色。
分配至内置角色(如参与者或所有者)的用户拥有足够的权限。 有关详细信息,请查看使用 Azure 门户分配 Azure 角色。
访问或读取评估报表所需的最低权限如下:
- SQL Server - Azure Arc 资源的资源组或订阅上的读取者角色。
- Log Analytics 读取者。
- Log Analytics 工作区的资源组或订阅上的监视读取者。
下面是访问或阅读评估报表的更多要求:
SQL Server 的内置登录名 NT AUTHORITY\SYSTEM 必须是计算机上运行的所有 SQL Server 实例的 SQL Server sysadmin 服务器角色的成员。
如果防火墙或代理服务器限制出站连接,请确保它允许这些 URL 通过 TCP 端口 443 连接到 Azure Arc:
global.handler.control.monitor.azure.com
*.handler.control.monitor.azure.com
<log-analytics-workspace-id>.ods.opinsights.azure.com
*.ingest.monitor.azure.com
SQL Server 实例必须启用 TCP/IP。
SQL Server 最佳做法评估使用 Azure Monitor 代理 (AMA) 从 SQL Server 服务器收集和分析数据。 如果在启用最佳做法评估之前已在 SQL Server 实例上安装 AMA,则评估使用相同的 AMA 代理和代理设置。 你无需执行任何其他操作。
如果未在 SQL Server 实例上安装 AMA,最佳做法评估会为你安装它。 最佳做法评估不会自动为 AMA 设置代理设置。 你需要使用所需的代理设置重新部署 AMA。
有关 AMA 网络和代理设置的详细信息,请查看代理配置。
如果使用“将安装了 SQL Server 扩展的已启用 Arc 的服务器配置为启用或禁用 SQL 最佳做法评估”Azure Policy 来大规模启用评估,则需要创建 Azure Policy 分配。 订阅需要针对目标范围的资源策略参与者角色分配。 范围可以是订阅或资源组。
如果计划创建新的用户分配的托管标识,还需要订阅中的用户访问管理员角色分配。
有关更多信息,请查看配置 SQL 最佳做法评估 - Azure Arc 启用的 SQL Server。
自动备份
SQL Server 的 Azure 扩展可以自动备份由 Azure Arc 启用的 SQL Server 实例上的系统和用户数据库。SQL Server 的 Azure 扩展中的备份服务使用 NT AUTHORITY\SYSTEM
帐户来执行备份。 如果以最低权限运行 Azure Arc 启用的 SQL Server,则本地 Windows 帐户 (NT Service\SQLServerExtension
) 执行备份。
如果对 SQL Server 1.1.2504.99
或更高版本使用 Azure 扩展,则会自动向 NT AUTHORITY\SYSTEM
授予必要的权限。 不需要手动分配权限。
如果不使用最低特权配置,则 SQL Server 内置登录名 NT AUTHORITY\SYSTEM
必须是以下成员:
- 服务器级别的
dbcreator
服务器角色 master
、model
、msdb
和每个用户数据库中的db_backupoperator
角色 - 不包括tempdb
。
默认情况下,自动备份处于禁用状态。 配置自动备份后,SQL Server 的 Azure 扩展服务启用备份到默认备份位置。 备份是本机 SQL Server 备份,这意味着 msdb
数据库中的备份相关表格中会包含所有备份历史记录。
Microsoft Defender for Cloud
Microsoft Defender for Cloud 要求 在已启用 Arc 的服务器上配置 Azure Monitoring 代理。
有关详细信息,请查看 Microsoft Defender for Cloud。
自动更新
自动更新将覆盖在已启用 Arc 的服务器上配置的任何预配置设置或基于策略的更新 Microsoft 更新设置。
- 仅安装标记为“重要”或“关键”的 Windows 和 SQL Server 更新 。 其他 SQL Server 更新(如未标记为“重要”或“关键”的服务包、累积更新或其他更新)则必须手动安装或以其他方式安装。 有关安全更新分级系统的详细信息,请参阅安全更新严重性分级系统 (microsoft.com)
- 在主机操作系统级别工作,适用于所有已安装的 SQL Server 实例
- 目前仅适用于 Windows 主机。 它会配置 Windows 更新/Microsoft 更新,也就是最终更新 SQL Server 实例的服务。
有关详细信息,请查看为已启用 Azure Arc 的 SQL Server 实例配置自动更新。
监视
你可以在 Azure 门户里监视已启用 Azure Arc 的 SQL Server 性能仪表板。 对于 Azure Arc 启用的 SQL Server 实例,系统会自动从符合条件的实例上的动态管理视图 (DMV) 数据集中收集性能指标,并将这些指标发送到 Azure 遥测管道进行准实时处理。 只要满足所有先决条件,监视可自动执行。
先决条件包括:
- 服务器已连接到
telemetry.<region>.arcdataservices.com
(有关详细信息,请参阅网络要求)。 - SQL Server 实例上的许可证类型设置为
License with Software Assurance
或Pay-as-you-go
。
要在 Azure 门户中查看性能仪表板,必须为你分配一个具有 Microsoft.AzureArcData/sqlServerInstances/getTelemetry/
操作的 Azure 角色。 为方便起见,可以使用内置角色 Azure 混合数据库管理员 - 只读服务角色,其中包括此操作。 有关更多信息,请参阅了解有关 Azure 内置角色的更多信息。
有关性能仪表板功能的详细信息,包括如何启用/禁用数据收集以及为此功能收集的数据,请参阅在 Azure 门户中监视。
Microsoft Entra ID
Microsoft Entra ID 是基于云的身份和访问管理服务,可支持访问外部资源。 与传统的基于用户名和密码的身份验证相比,Microsoft Entra 身份验证大大增强了安全性。 Azure Arc 启用的 SQL Server 利用 Microsoft Entra ID 进行身份验证 - 已在 SQL Server 2022 (16.x) 中引入。 这为 SQL Server 提供了集中式身份和访问管理解决方案。
Azure Arc 启用的 SQL Server 在 Azure Key Vault 中存储用于 Microsoft Entra ID 的证书。 有关详细信息,请查看:
若要设置 Microsoft Entra ID,请按照教程:为 SQL Server 设置 Microsoft Entra 身份验证中的说明操作。
Microsoft Purview
使用 Purview 的关键要求:
- 具有活动订阅的 Azure 帐户。
- 活动的 Microsoft Purview 帐户。
- 需要拥有数据源管理员和数据读取者权限才能在 Microsoft Purview 治理门户中注册和管理源。 有关详细信息,请参阅 Microsoft Purview 治理门户中的访问控制。
- 最新的自承载集成运行时。 有关详细信息,请参阅创建和管理自承载集成运行时。
- 对于 Azure RBAC,需要同时启用 Microsoft Entra ID 和 Azure Key Vault。
最佳做法
请实施以下配置,以遵循当前最佳做法来保护 Azure Arc 启用的 SQL Server 实例:
- 启用最低特权模式(预览版)。
- 运行 SQL 最佳做法评估。 查看评估并应用建议。
- 启用 Microsoft Entra 身份验证。
- 启用 Microsoft Defender for Cloud 并解决 Defender for SQL 指出的问题。
- 请勿启用 SQL 身份验证。 此项默认禁用。 查看 SQL Server 安全最佳做法。