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

Azure 虚拟机中 SQL Server 的安全注意事项

适用于: Azure VM 上的 SQL Server

本文包括用于帮助与 Azure 虚拟机 (VM) 中的 SQL Server 实例建立安全访问的总体安全准则。

Azure 遵守多个行业法规和标准,使用户能够使用虚拟机中运行的 SQL Server 生成符合规定的解决方案。 有关 Azure 合规性的信息,请参阅 Azure 信任中心

首先查看适用于 SQL ServerAzure VM 的安全最佳做法,然后查看本文了解具体应用于 Azure VM 上 SQL Server 的最佳做法。

若要了解有关 SQL Server VM 最佳做法的详细信息,请参阅本系列其他文章:清单VM 大小HADR 配置收集基线

清单

查看以下清单,大致了解文章其余部分更详细介绍的安全最佳做法。

SQL Server 特性和功能提供在数据库级别保护数据的方法,其可与基础结构级别的安全功能结合使用。 总之,这些功能为基于云和混合的解决方案在基础结构级别提供了纵深防御。 此外,借助 Azure 安全措施,可以加密敏感数据、防范虚拟机遭到病毒和恶意软件的侵害、保护网络流量、识别和检测威胁、满足合规要求,并提供单一的方法来管理和报告混合云中的任何安全需求。

  • 使用 Microsoft Defender for Cloud 评估数据环境的安全态势,并采取措施来做出改进。 可以在混合工作负载中使用 Azure 高级威胁防护 (ATP) 等功能来改善安全评估并提供对风险做出反应的能力。 向 SQL IaaS 代理扩展注册 SQL Server VM 后,会在 Azure 门户的 SQL 虚拟机资源中显示 Microsoft Defender for Cloud 评估。
  • 使用 Microsoft Defender for SQL 发现和缓解潜在的数据库漏洞,以及检测可能表示 SQL Server 实例和数据库层受到威胁的异常活动。
  • 漏洞评估Microsoft Defender for SQL 的一部分,可以发现并帮助修正 SQL Server 环境面临的潜在风险。 它可让用户观察安全状态,并包含用于解决安全问题的可行步骤。
  • 使用 Azure 机密 VM 加强对正在使用的数据和静态数据的保护,防止主机操作员访问。 借助 Azure 机密 VM,可以放心地将敏感数据存储在云中,并满足严格的合规性要求。
  • 如果使用 SQL Server 2022,请考虑使用 Microsoft Entra 身份验证连接到 SQL Server 实例。
  • Azure 顾问可分析资源配置和遥测使用情况,并推荐解决方案,有助于提高 Azure 资源的经济效益、性能、高可用性和安全性。 在虚拟机、资源组或订阅级别使用 Azure 顾问可以帮助识别和应用最佳做法来优化 Azure 部署。
  • 当合规性与安全性政策要求使用加密密钥对数据进行端到端加密(包括加密临时磁盘,即本地附加的临时磁盘)时,可以使用 Azure 磁盘加密
  • 系统默认会使用 Azure 存储服务加密来静态加密托管磁盘,其中,加密密钥是 Azure 中的 Microsoft 托管密钥。
  • 有关托管磁盘加密选项的比较,请查看托管磁盘加密比较图表
  • 应在虚拟机上关闭管理端口 - 打开远程管理端口会导致 VM 面临基于 Internet 的攻击的严重风险。 此类攻击试图暴力破解凭据,来获取对计算机的管理员访问权限。
  • 为 Azure 虚拟机启用实时 (JIT) 访问
  • 通过远程桌面协议 (RDP) 使用 Azure Bastion
  • 使用 Azure 防火墙锁定端口并仅允许传送必要的应用程序流量。Azure 防火墙是一个托管的防火墙即服务 (FaaS),它根据来源 IP 地址授予/拒绝服务器访问权限。
  • 使用网络安全组 (NSG) 筛选传入和传出 Azure 虚拟网络上的 Azure 资源的网络流量
  • 使用应用程序安全组将端口筛选要求和功能类似的服务器(例如 Web 服务器和数据库服务器)分组到一起。
  • 对于 Web 和应用程序服务器,可以使用 Azure 分布式拒绝服务 (DDoS) 防护。 DDoS 攻击旨在瘫痪和耗尽网络资源,使应用速度变慢或无响应。 DDoS 攻击通常以用户界面为目标。 Azure DDoS 防护可以在有害网络流量影响到服务可用性之前对其进行净化
  • 使用 VM 扩展来帮助实现反恶意软件、所需状态、威胁检测、预防和修正,以解决操作系统、计算机和网络级别的威胁:
  • 使用 Azure Policy 创建可应用于环境的业务规则。 Azure 策略通过将这些资源的属性与以 JSON 格式定义的规则进行比较来评估 Azure 资源。
  • 通过 Azure 蓝图,云架构师和中心信息技术组同样可以定义一组可重复的 Azure 资源,这些资源实现并遵守组织的标准、模式和要求。 Azure 蓝图不同于 Azure 策略
  • 使用 Windows Server 2019 或 Windows Server 2022 来使 Azure VM 上的 SQL Server 符合 FIPS 标准。

有关安全最佳做法的详细信息,请参阅 SQL Server 安全最佳做法保护 SQL Server

计算机上的 Microsoft Defender for SQL

Microsoft Defender for Cloud 是一个统一的安全管理系统,旨在评估数据环境的安全态势,并提供对其进行改进的机会。 Microsoft Defender 为 Azure VM 上的 SQL Server 提供计算机上的 Microsoft Defender for SQL 保护。 使用 Microsoft Defender for SQL 发现和缓解潜在的数据库漏洞,并检测可能表示 SQL Server 实例和数据库层受到威胁的异常活动。

Microsoft Defender for SQL 具有以下优势:

  • 漏洞评估可发现并帮助修正 SQL Server 环境面临的潜在风险。 它可让用户观察安全状态,并包含用于解决安全问题的可行步骤。
  • 在 Microsoft Defender for Cloud 中使用安全评分
  • 有关更多详细信息,请查看当前可用的计算数据建议列表。
  • 将 SQL Server VM 注册到 SQL Server IaaS 代理扩展会向 Azure 门户中的 SQL 虚拟机资源提供 Microsoft Defender for SQL 建议。

门户管理

向 SQL IaaS 代理扩展注册 SQL Server VM 后,可以在 Azure 门户中使用 SQL 虚拟机资源配置许多安全设置,例如启用 Azure Key Vault 集成或 SQL 身份验证。

此外,启用计算机上的 Microsoft Defender for SQL 后,可直接在 Azure 门户的 SQL 虚拟机资源中查看 Defender for Cloud 功能,例如漏洞评估和安全警报。

请参阅在门户中管理 SQL Server VM 了解详细信息。

机密 VM

Azure 机密 VM 提供强大的硬件强制边界,可强化来宾 OS 保护,防止主机操作员访问。 为 Azure VM 上的 SQL Server 选择机密 VM 大小可提供额外的保护层,使你能够自信地将敏感数据存储在云中,并满足严格的合规性要求。

Azure 机密 VM 通过 SEV-SNP 技术利用 AMD 处理器,其使用处理器生成的密钥加密 VM 的内存。 这有助于保护使用中的数据(在 SQL Server 进程的内存中处理的数据),防止主机 OS 的未经授权访问。 机密 VM 的 OS 磁盘还可以使用绑定到虚拟机的受信任平台模块 (TPM) 芯片的密钥进行加密,从而增强对静态数据的保护。

有关详细部署步骤,请参阅快速入门:将 SQL Server 部署到机密 VM

针对机密 VM 的磁盘加密的建议不同于针对其他 VM 大小的建议。 有关详细信息,请参阅磁盘加密

Microsoft Entra 身份验证

从 SQL Server 2022 开始,可以使用以下 Microsoft Entra ID(以前称为 Azure Active Directory)身份验证方法之一连接到 SQL Server:

  • 密码通过 Microsoft Entra 凭据提供身份验证
  • 通用且具有 MFA”添加多重身份验证
  • “集成”将使用 Active Directory 联合身份验证服务 (ADFS) 等联合提供程序来启用单一登录 (SSO) 体验
  • 服务主体”实现了从 Azure 应用程序进行身份验证的功能
  • 托管标识从应用程序分配的 Microsoft Entra 标识启用身份验证

要开始使用,请查看为 SQL Server VM 配置 Microsoft Entra 身份验证

Azure 顾问

Azure 顾问是个性化的云顾问程序,可帮助遵循最佳做法来优化 Azure 部署。 顾问可分析资源配置和遥测使用情况,并推荐解决方案,有助于提高 Azure 资源的经济效益、性能、高可用性和安全性。 Azure 顾问可在虚拟机、资源组或订阅级别进行评估。

Azure 密钥保管库集成

SQL Server 加密功能多种多样,包括透明数据加密 (TDE)、列级加密 (CLE) 和备份加密。 这些加密形式要求管理和存储用于加密的加密密钥。 Azure 密钥保管库服务专用于在一个高度可用的安全位置改进这些密钥的安全性和管理。 SQL Server 连接器使 SQL Server 能够使用 Azure 密钥保管库中的这些密钥。

考虑以下情况:

  • Azure 密钥保管库将应用程序机密存储在集中式云位置,以安全地控制访问权限,并单独记录访问。
  • 将自己的密钥引入 Azure 时,建议将机密和证书存储在 Azure 密钥保管库
  • Azure 磁盘加密使用 Azure 密钥保管库来控制和管理磁盘加密密钥和机密。

访问控制

使用 Azure 库映像创建 SQL Server 虚拟机时,可以使用“SQL Server 连接”选项来选择“本地(VM 内部)”、“专用(虚拟网络内部)”或“公共(Internet)”。

显示 SQL Server 连接的示意图。

为了达到最佳安全性,请为方案选择最严格的选项。 例如,如果正在运行访问同一 VM 上的 SQL Server 的应用程序,则“本地”选项最安全。 如果正在运行需要访问 SQL Server 的 Azure 应用程序,则选择“专用”选项可确保与 SQL Server 的通信仅在指定的 Azure 虚拟网络内安全地进行。 如果需要使用“公共(Internet)”选项访问 SQL Server VM,请确保遵照本主题中的其他最佳做法,以减小受攻击面。

在门户中选择的选项使用 VM 网络安全组 (NSG) 上的入站安全规则来允许或拒绝发往虚拟机的网络流量。 可修改或创建新的入站 NSG 规则,允许到 SQL Server 端口(默认为 1433)的流量。 还可指定允许通过此端口进行通信的特定 IP 地址。

显示网络安全组规则的示意图。

除了使用 NSG 规则限制网络流量外,还可以对虚拟机使用 Windows 防火墙。

如果通过经典部署模型使用终结点,不使用它们时,请删除虚拟机上的所有终结点。 有关在终结点上使用 ACL 的说明,请参阅管理终结点上的 ACL。 对于使用 Azure 资源管理器的 VM 来说,无需执行此操作。

请考虑针对 Azure 虚拟机中的 SQL Server 数据库引擎实例启用加密连接。 使用签名证书配置 SQL Server 实例。 有关详细信息,请参阅启用到数据库引擎的加密连接连接字符串语法

“保护网络连接或外围”时,请考虑以下事项:

  • Azure 防火墙 - 一种有状态、托管的防火墙即服务 (FaaS),它基于原始 IP 地址授予/拒绝服务器访问,以保护网络资源。
  • Azure 分布式拒绝服务 (DDoS) 防护 - DDoS 攻击会吞噬和耗尽网络资源,使应用速度缓慢或无响应。 Azure DDoS 防护可以在有害网络流量影响到服务可用性之前对其进行净化。
  • 网络安全组 (NSG) - 筛选传入和传出 Azure 虚拟网络上的 Azure 资源的网络流量
  • 应用程序安全组 - 提供对具有类似端口筛选要求的服务器的分组,以及将具有类似功能的服务器分组在一起,例如 Web 服务器。

磁盘加密

本部分提供有关磁盘加密的指南,但针对在 Azure VM 上部署常规 SQL Server 的建议和针对在 Azure 机密 VM 上部署 SQL Server 的建议不同。

常规 VM

部署到非 Azure 机密 VM 的托管磁盘使用服务器端加密和 Azure 磁盘加密。 服务器端加密可提供静态加密并保护数据,让组织能够信守所做出的安全性与合规性承诺。 Azure 磁盘加密使用 BitLocker 或 DM-Crypt 技术并与 Azure Key Vault 集成,可对 OS 磁盘和数据磁盘进行加密。

考虑以下情况:

  • Azure 磁盘加密 - 使用适用于 Windows 和 Linux 虚拟机的 Azure 磁盘加密来加密虚拟机磁盘。
    • 当合规性与安全性政策要求使用加密密钥对数据进行端到端加密(包括加密临时磁盘,即本地附加的临时磁盘)时,请使用 Azure 磁盘加密
    • Azure 磁盘加密 (ADE) 利用 Windows 的行业标准 BitLocker 功能和 Linux 的 DM-Crypt 功能,来提供 OS 和数据磁盘加密。
  • 托管磁盘加密
    • 系统默认会使用 Azure 存储服务加密来静态加密托管磁盘,其中,加密密钥是存储在 Azure 中的 Microsoft 托管密钥。
    • Azure 托管磁盘中的数据使用 256 位 AES 加密(可用的最强大分组加密之一)以透明方式加密,且符合 FIPS 140-2 规范。
  • 有关托管磁盘加密选项的比较,请查看托管磁盘加密比较图表

Azure 机密 VMs

如果使用 Azure 机密 VM,请考虑以下建议,以最大程度地提高安全优势:

  • 配置机密 OS 磁盘加密,它将 OS 磁盘加密密钥绑定到虚拟机的受信任平台模块 (TPM) 芯片,这样只有该 VM 才能访问受保护的磁盘内容。
  • 使用 BitLocker 加密数据磁盘(包含数据库文件、日志文件或备份文件的任何磁盘),并启用自动解锁 - 查看 manage-bde autounlockEnableBitLockerAutoUnlock 以了解详细信息。 自动解锁可确保加密密钥存储在 OS 磁盘上。 与机密 OS 磁盘加密结合使用,这可以防止存储在 VM 磁盘上的静态数据免受未经授权的主机访问。

受信任启动

部署第 2 代虚拟机时,可以选择启用受信任启动来防范高级攻击和持续性攻击方法。

采用受信任启动,你可以:

  • 安全部署其启动加载程序、OS 内核和驱动程序已经过验证的虚拟机。
  • 安全保护虚拟机中的密钥、证书和机密。
  • 获取整个启动链的完整性的见解和置信度。
  • 确保工作负载受信任且可验证。

在 Azure VM 上为 SQL Server 启用受信任启动时,当前不支持以下功能:

  • Azure Site Recovery
  • 超级磁盘
  • 托管映像
  • 嵌套虚拟化

管理帐户

希望攻击者难以猜测帐户名或密码。 使用以下技巧会有所帮助:

  • 创建一个唯一的本地管理员帐户,不要命名为 Administrator

  • 对所有帐户使用复杂的强密码。 若要深入了解如何创建强密码,请参阅创建强密码一文。

  • 默认情况下,Azure 在 SQL Server 虚拟机安装期间会选择 Windows 身份验证。 因此,会禁用 SA 登录名,并由安装程序分配密码。 建议不要使用或启用 SA 登录名。 如果必须使用 SQL 登录名,请使用以下策略之一:

    • 创建一个名称唯一且具有 sysadmin 成员资格的 SQL 帐户。 可通过在预配期间启用 SQL 身份验证,从门户执行此操作。

      提示

      如果预配期间未启用 SQL 身份验证,则必须手动将身份验证模式更改为 SQL Server 和 Windows 身份验证模式。 有关详细信息,请参阅 更改服务器身份验证模式

    • 如果必须使用 SA 登录名,请在预配后启用该登录名,并分配新的强密码。

注意

不支持使用 Microsoft Entra 域服务连接 SQL Server VM - 请改用 Active Directory 域帐户。

审核和报告

使用 Log Analytics 审核可记录事件,并将其写入到安全 Azure Blob 存储帐户中的审核日志。 Log Analytics 可用于破译审核日志的详细信息。 审核使你能够将数据保存到单独的存储帐户,并创建所选所有事件的审核线索。 你还可以利用针对审核日志的 Power BI,以获取有关数据的快速分析和见解,并提供法规符合性的视图。 若要详细了解 VM 和 Azure 级别的审核,请参阅 Azure 安全日志记录和审核

虚拟机级别访问

关闭计算机上的管理端口 - 打开远程管理端口会使 VM 暴露在较高级别的 Internet 攻击风险之下。 此类攻击试图暴力破解凭据,来获取对计算机的管理员访问权限。

虚拟机扩展

Azure 虚拟机扩展是受信任的 Microsoft 或第三方扩展,可帮助解决特定需求和风险,如防病毒、恶意软件、威胁防护等。

  • 来宾配置扩展
    • 若要确保安全配置计算机的来宾内设置,请安装来宾配置扩展。
    • 来宾内设置包括操作系统的配置、应用程序配置或状态以及环境设置。
    • 安装后,来宾内策略将可用,如“应启用 Windows 攻击防护”。
  • 网络流量数据收集代理
    • Microsoft Defender for Cloud 使用 Microsoft 依赖项代理从 Azure 虚拟机收集网络流量数据。
    • 该代理启用高级网络保护功能,如网络地图上的流量可视化、网络加固建议和特定网络威胁。
  • 评估来自 Microsoft 和第三方的扩展来处理反恶意软件、所需状态、威胁检测、预防和修正,以解决操作系统、计算机和网络级别的威胁。

符合 FIPS

FIPS 是美国政府标准,用于定义信息技术产品和系统中加密模块的最低安全要求。 SQL Server 能够符合 SQL Server 2016 及更高版本或具有扩展安全更新SQL Server 2014 中的 FIPS 标准。

为了使 Azure VM 上的 SQL Server 符合 FIPS 标准,应使用默认启用了 FIPS 的 Windows Server 2022。 如果使用安全技术实施指南 (STIG) 研究结果 V-93511 中指定的策略手动启用 FIPS,则 Windows Server 2019 也可能符合 FIPS 标准。

SQL Server 目前不符合 Linux Azure VM 上的 FIPS 标准。

首先查看适用于 SQL ServerAzure VM 的安全最佳做法,然后查看本文了解具体应用于 Azure VM 上 SQL Server 的最佳做法。

若要了解与在 Azure VM 中运行 SQL Server 相关的其他主题,请参阅 Azure 虚拟机上的 SQL Server 概述。 如果对 SQL Server 虚拟机有任何疑问,请参阅常见问题解答

有关详细信息,请参阅本最佳做法系列中的其他文章: