有关保护 Azure 中的 PaaS 数据库的最佳做法

本文提供了一系列关于Azure SQL 数据库Azure Synapse Analytics安全的最佳实践,用于保护您的平台即服务(PaaS)网络和移动应用的安全。 Microsoft 从与 Azure 及 Azure 客户的经验中得出了这些最佳实践。

Azure SQL 数据库和Azure Synapse Analytics 为基于 Internet 的应用程序提供关系数据库服务。 在PaaS部署中使用Azure SQL 数据库和Azure Synapse Analytics时,请回顾帮助保护应用和数据的服务:

  • Microsoft Entra 身份验证(而不是SQL Server身份验证)
  • Azure SQL防火墙
  • 透明数据加密 (TDE)

使用集中式标识存储库

你可以配置 Azure SQL 数据库 使用两种认证类型之一:

  • SQL 身份验证 使用用户名和密码。 当你为数据库创建服务器时,你需要指定 server admin 一个包含用户名和密码的认证。 用这些凭据作为数据库所有者向该服务器上的任何数据库进行认证。

  • Microsoft Entra 认证使用由 Microsoft Entra ID 管理的身份,并支持托管和集成域。 要使用 Microsoft Entra 认证,您必须创建另一个服务器管理员,称为 ,Microsoft Entra admin该管理员可以管理 Microsoft Entra 用户和组。 此管理员还能执行普通服务器管理员可以执行的所有操作。

Microsoft Entra 认证是一种通过使用 Microsoft Entra ID 中的身份来连接 Azure SQL 数据库 和 Azure Synapse Analytics 的机制。 Microsoft Entra ID提供SQL Server身份验证的替代方法,以便可以阻止跨数据库服务器的用户标识激增。 Microsoft Entra 身份验证使你能够在一个中心位置集中管理数据库用户和其他Microsoft服务的标识。 集中 ID 管理提供一个单一位置来管理数据库用户,并简化权限管理。

Microsoft Entra ID 取代 SQL 认证的优势

  • 允许在单一位置中轮换密码。
  • 您可以通过外部的 Microsoft Entra 组来管理数据库权限。
  • 通过启用 Microsoft Entra ID 支持的集成 Windows 身份验证和其他形式的身份验证,消除了对存储密码的需求。
  • 使用包含的数据库用户在数据库级别对标识进行身份验证。
  • 为连接到 SQL 数据库的应用程序支持基于令牌的身份验证。
  • 支持与 Active Directory 联合身份验证服务 (ADFS) 的域联合身份验证,或对无需域同步的本地 Microsoft Entra ID 进行原生用户/密码身份验证。
  • 它支持使用 Active Directory 通用认证(包括多因素认证)的 SQL Server Management Studio 连接。 MFA 包括具有一系列简单验证选项的强身份验证。 验证选项包括电话、短信、带PIN码的智能卡或移动应用通知。 有关更多信息,请参阅 SQL 数据库和 Azure Synapse Analytics 的通用身份验证

有关 Microsoft Entra 认证的更多信息,请参见:

注释

若要确保Microsoft Entra ID适合你的环境,请参阅 Microsoft Entra 功能和限制

根据 IP 地址限制访问权限

可以创建指定可接受的 IP 地址范围的防火墙规则。 你可以在服务器和数据库层面都针对这些规则。 尽可能使用数据库级防火墙规则,以增强安全性并使数据库更具可携带性。 当你不想花时间逐个配置每个数据库时,可为管理员以及多个具有相同访问要求的数据库使用服务器级防火墙规则。

SQL 数据库默认的源 IP 地址限制允许从任何 Azure 地址(包括其他订阅和租户)访问。 你可以将其限制为仅允许你的 IP 地址访问该实例。 即使存在 SQL 防火墙和 IP 地址限制,仍需要强身份验证。 请参阅本文前面的建议。

有关Azure SQL防火墙和IP限制的更多信息,请参见:

静态数据加密

默认情况下启用 透明数据加密 (TDE)。 TDE 以透明方式加密 SQL Server、Azure SQL 数据库 和 Azure Synapse Analytics 数据和日志文件。 TDE 可防止文件或其备份被直接访问或攻破。 此功能使你能够在不更改现有应用的情况下加密静态数据。 保持TDE开启。 然而,TDE并不能阻止使用普通访问路径的攻击者。 TDE帮助您遵守各行业制定的多项法律、法规和指南。

Azure SQL 管理针对 TDE 的密钥相关问题。 与TDE本地部署一样,务必特别注意确保可恢复性并支持数据库迁移。 在更复杂的场景下,你可以通过可扩展的密钥管理,显式管理 Azure 密钥保管库 中的密钥。 请参阅使用 EKM 在 SQL Server 上启用 TDE。 该功能还支持通过 Azure 密钥保管库 BYOK 功能实现自带密钥(BYOK)。

Azure SQL通过 Always Encrypted 为列提供加密。 该功能允许只有授权的应用程序访问敏感列。 这种加密限制了对加密列的SQL查询,仅限于基于等值的值。

选择性数据使用应用级加密。 你有时可以通过用保存在正确国家/地区的密钥加密数据来缓解数据主权问题。 这种方法防止了即使是意外的数据传输也不会引发问题,因为假设使用像AES-256这样强的算法,没有密钥的数据是无法解密的。

你可以采取更多预防措施来帮助数据库安全,比如设计安全系统、加密机密资产,以及在数据库服务器周围搭建防火墙。

后续步骤

本文介绍了一系列 SQL 数据库和 Azure Synapse Analytics 安全最佳做法,用于保护 PaaS Web 和移动应用程序。 若要了解有关保护 PaaS 部署的详细信息,请参阅: