Azure SQL 托管实例是一个完全托管的平台即服务(PaaS)数据库引擎,提供与最新 SQL Server 数据库引擎近 100% 兼容性。 它将 SQL Server 的最佳功能与完全托管的服务的作优势相结合。 因为它通常存储关键业务数据,包括客户记录、财务信息和知识产权,因此保护 SQL 托管实例对于防止数据泄露、未经授权的访问和合规性违规至关重要。
本文提供有关如何最好地保护 Azure SQL 托管实例部署的指导。
网络安全
SQL 托管实例的网络安全性有助于防止未经授权的连接,减少受到攻击的风险,并确保只有受信任的源才能通过适当的网络隔离和访问控制访问数据库。
部署在专用虚拟网络中:将托管实例放置在虚拟网络中的专用子网中,以提供网络隔离和控制流量流。 这可确保数据库与其他资源隔离,并受网络边界保护。 有关详细信息,请参阅虚拟网络要求。
配置网络安全组(NSG):将 NSG 应用到 SQL 托管实例子网,以控制入站和出站流量。 仅限制对所需端口和源的访问,以最大程度地减少攻击面。 有关详细信息,请参阅 网络安全组。
尽可能使用专用终结点:通过专用 IP 地址连接到 SQL 托管实例,以避免将数据库公开到公共 Internet。 专用连接可降低外部攻击和数据外泄的风险。 有关详细信息,请参阅 专用终结点连接。
默认情况下禁用公共终结点:仅在体系结构绝对必要的情况下启用公共终结点。 启用后,请使用严格的防火墙规则来限制仅对已授权 IP 地址的访问。 有关详细信息,请参阅 公共终结点概述。
实现 ExpressRoute 或 VPN 以实现混合连接:使用 Azure ExpressRoute 或站点到站点 VPN 在本地网络与 Azure 之间建立安全专用连接。 这可确保数据不会遍历公共 Internet。 有关详细信息,请参阅 连接体系结构。
启用连接加密:将所有客户端连接配置为在传输中使用加密。 默认情况下,SQL 托管实例支持 TLS 1.2,确保在客户端和数据库之间移动时保护数据。 TLS 1.3 也可用于 SQL 托管实例。 有关详细信息,请参阅 连接安全性。
标识管理
强标识和身份验证控制可确保只有经过授权的用户和应用程序才能访问 SQL 托管实例资源,同时提供集中式标识管理和更轻松的帐户生命周期管理。
配置 Microsoft Entra 管理员:为 SQL 托管实例指定Microsoft Entra 管理员,以启用集中式标识管理和高级安全功能。 此管理员可以管理访问和身份验证策略。 有关详细信息,请参阅 Microsoft Entra 管理中心。
使用 Microsoft Entra 身份验证:首选 Microsoft Entra 身份验证而不是 SQL 身份验证,以便进行集中式标识管理和更轻松的帐户生命周期控制。 Microsoft Entra ID 提供卓越的安全性,并启用条件访问等高级功能。 有关详细信息,请参阅 配置Microsoft Entra 身份验证。
创建受限数据库用户:尽可能使用映射到 Microsoft Entra 组而非服务器级登录名的受限数据库用户。 这简化了权限管理和提高安全性,无需服务器级访问。 有关详细信息,请参阅使用包含的数据库实现数据库可移植。
启用多重身份验证:需要对管理帐户和特权用户进行多重身份验证,以在密码之外添加额外的安全层。 有关详细信息,请参阅多重身份验证(MFA)。
对应用程序使用托管标识:为 Azure 资源启用托管标识,以允许应用程序在不存储凭据的情况下进行身份验证。 这样就无需使用嵌入式密码管理连接字符串。 有关详细信息,请参阅 Azure 资源的托管标识。
强制实施强密码策略:如果使用 SQL 身份验证,则需要无法轻易猜出的复杂密码。 实施密码轮换策略,避免在不同帐户之间重用密码。 有关详细信息,请参阅 密码策略。
特权访问
控制特权访问可防止未经授权的更改,减少被入侵帐户的影响,并确保正确监视和控制管理作。
实现最低特权访问权限:仅向用户授予执行其作业功能所需的最低权限。 定期查看和调整权限,以维护最小特权原则。 有关详细信息,请参阅 数据库引擎权限入门。
单独的管理角色:避免向所有数据库管理员授予管理员权限。 尽可能使用更精细的权限,如 CONTROL SERVER,并实现不同管理功能之间的职责分离。 有关详细信息,请参阅权限。
使用 Azure 基于角色的访问控制(RBAC):实现 Azure RBAC 来控制对 SQL 托管实例管理作的访问。 创建自定义角色,这些角色仅提供特定管理任务所需的权限。 有关详细信息,请参阅 适用于 SQL 托管实例的 Azure RBAC。
监视特权活动:启用审核以跟踪特权帐户执行的所有操作。 定期查看可疑活动或未经授权的更改的审核日志。 有关详细信息,请参阅 SQL 托管实例审核。
使用服务器角色进行数据库级访问:利用内置服务器角色并创建自定义角色来实现基于角色的安全性。 将用户分配到角色,而不是授予单个权限来简化管理和减少错误。 有关详细信息,请参阅服务器级别角色。
数据保护
数据保护通过加密、访问控制和数据分类来保护信息,以防止未经授权的泄露、篡改或丢失敏感信息。
启用透明数据加密(TDE):使用 TDE 加密静态数据库、日志和备份文件。 请考虑在 Azure Key Vault 中使用客户管理的密钥,以进一步控制加密密钥。 有关详细信息,请参阅 透明数据加密。
为敏感数据实现 Always Encrypted:使用 Always Encrypted 保护使用、静态和传输中的高度敏感数据。 这可确保即使是数据库管理员也不能以纯文本方式查看敏感数据。 有关详细信息,请参阅 Always Encrypted。
在 SQL 托管实例中使用账本:启用账本以创建敏感数据更改的不可变记录,从而提供防篡改日志记录。 有关详细信息,请参阅 账本概述。
使用动态数据掩码:为非特权用户应用动态数据掩码以模糊处理敏感数据,同时保留应用程序的数据功能。 这有助于防止未经授权的敏感信息访问。 有关详细信息,请参阅 动态数据掩码。
分类和标记敏感数据:使用 SQL 数据发现和分类来识别、分类和标记数据库中的敏感数据。 这能更好地实现保护和合规报告。 有关详细信息,请参阅 数据发现和分类。
实现列级安全性:授予列级别的权限以限制对敏感数据的访问。 仅向需要访问敏感列的用户提供 SELECT、UPDATE 或 REFERENCES 权限。 有关详细信息,请参阅 加密数据列。
使用 Row-Level 安全性(RLS):实现 RLS 以确保用户只能访问与其相关的数据行。 这提供了应用程序级安全性,无需进行重大应用程序更改。 有关详细信息,请参阅 行级安全性。
备份和恢复
可靠的备份和恢复过程可保护数据免受故障、灾难或攻击造成的损失,同时确保满足恢复时间和时间点目标。
验证自动备份配置:确保自动备份已正确配置,并确保保留期限符合您的业务要求。 默认情况下,Azure SQL 托管实例提供自动备份,最长可配置保留期为 35 天。 备份存储独立于实例存储,大小不受限制。 有关更多信息,请参阅自动备份。
监视备份活动:跟踪对 SQL 托管实例执行自动备份的时间,以确保备份作成功完成。 有关详细信息,请参阅 “监视备份活动”。
使用异地冗余备份存储:为备份配置异地冗余存储,以防止区域性灾难。 这可确保即使主要区域不可用,也能恢复数据。 有关详细信息,请参阅 备份存储冗余。
测试备份和还原过程:定期测试备份和还原过程,以确保它们正常工作并满足恢复时间目标。 验证还原的数据库是否完全正常运行,并维护数据完整性。 有关详细信息,请参阅 时间点还原。
使用原生备份和还原功能:利用 Azure Blob 存储的原生备份和还原功能来实现迁移方案。 可以从.bak文件(SQL Server 2005+)创建仅复制完整备份和还原。 如果数据库由服务管理的 TDE 加密,则无法进行仅复制备份。 有关详细信息,请参阅从 URL 本机还原。
实施长期保留策略:为超出默认保留期的符合性要求配置长期备份保留。 这可确保满足数据保留的法规要求。 有关详细信息,请参阅 长期备份保留。
监视和威胁检测
全面的监视和威胁检测有助于识别安全问题、检测异常活动,并快速响应针对 SQL 托管实例的潜在威胁。
启用 Microsoft Defender for SQL:配置 Microsoft Defender for SQL,以检测访问或利用数据库的异常和潜在有害尝试。 这提供了高级威胁防护功能,包括漏洞评估和威胁检测。 有关详细信息,请参阅 Microsoft Defender for SQL。
配置高级威胁防护:设置高级威胁防护,以检测特定威胁,包括潜在的 SQL 注入、异常位置或数据中心的访问、来自不熟悉的主体的访问以及暴力破解 SQL 凭据。 为威胁警报配置电子邮件通知和存储帐户。 有关详细信息,请参阅 配置高级威胁防护。
配置 SQL 审核:启用全面的审核以跟踪数据库事件并将其写入 Azure 存储、Log Analytics 或事件中心。 这提供了详细的日志,用于安全分析和符合性报告。 有关详细信息,请参阅 SQL 托管实例审核。
设置 Azure Monitor:使用 Azure Monitor 收集平台指标、诊断日志,并为 SQL 托管实例创建自定义警报。 监视集中位置的资源消耗、性能指标和安全事件。 有关详细信息,请参阅 监视 Azure SQL 托管实例。
创建指标警报:为可疑活动、失败登录尝试、异常数据库访问模式和资源消耗阈值设置警报。 警报指标适用于 SQL 托管实例级别,不适用于单个数据库。 有关详细信息,请参阅 为 SQL 托管实例创建警报。
使用 SQL 漏洞评估:定期运行漏洞评估,以识别数据库中的安全配置错误和潜在漏洞。 及时修正已识别的问题,以保持强大的安全态势。 有关详细信息,请参阅 SQL 漏洞评估。
使用动态管理视图(DMV)进行监视:使用 DMV 监视性能、检测被阻止的查询、资源瓶颈和安全相关活动。 动态管理视图提供有关数据库引擎操作和安全事件的详细见解。 有关详细信息,请参阅 使用动态管理视图监视 Azure SQL 托管实例性能。
实现查询存储监视:使查询存储能够跟踪一段时间内的查询性能、识别性能回归和监视查询执行模式。 这有助于检测可能指示安全问题的异常查询行为。 有关详细信息,请参阅使用查询存储监视性能。
使用扩展事件进行详细监视:实现扩展事件(XEvents)以实现低开销、详细监视数据库活动,包括安全事件和性能问题。 XEvent 提供比 SQL 探查器更精细的监视,性能影响较小。 有关详细信息,请参阅扩展事件。
合规性和治理
维护合规性和治理可确保 SQL 托管实例部署通过适当的控制和文档满足法规要求和组织安全策略。
应用 Azure Policy 进行治理:使用 Azure Policy 强制实施组织安全标准,并确保在所有 SQL 托管实例上配置一致。 创建自定义策略以满足特定的符合性要求。 考虑用于强化Microsoft Entra认证、备份冗余存储和数据驻留要求的策略。 有关详细信息,请参阅 适用于 SQL 托管实例的 Azure Policy。
强制使用 Microsoft Entra 仅限身份验证:使用 Azure Policy 使新的 SQL 托管实例强制要求 Microsoft Entra 仅限身份验证,并确保已禁用 SQL 身份验证以提高安全性。 这提供集中式标识管理并消除基于密码的身份验证漏洞。 有关详细信息,请参阅 使用 Azure Policy 强制实施仅限 Microsoft Entra 身份验证。
实施资源标记策略:应用一致的 Azure 标记来识别资源所有权、环境分类、成本中心和合规性要求。 使用标记进行自动化治理、成本跟踪和资源管理。 有关详细信息,请参阅 开发 Azure 资源的命名和标记策略。
利用 Microsoft Purview 进行数据治理:与 Microsoft Purview 集成,以便跨数据资产进行数据分类、世系跟踪和统一的数据治理。 使用敏感度标签和数据丢失防护策略来保护机密数据。 有关详细信息,请参阅 Microsoft Purview 信息保护。
文档安全过程:维护安全过程、事件响应计划和访问控制策略的综合文档。 定期查看和更新文档,以反映当前的做法和符合性要求。 有关详细信息,请参阅 安全最佳做法。
进行定期安全评估:执行定期安全评估以评估安全状况并识别要改进的领域。 在安全计划中包括渗透测试和漏洞评估。 记录合规报告所需的整改措施。 有关详细信息,请参阅 SQL 漏洞评估。
维护审核线索:确保正确记录所有管理作和数据访问,并在所需的保留期内维护审核线索。 保护审核日志免受篡改或未经授权的访问。 根据法规要求(SOX、PCI DSS)配置审核日志保留期。 有关详细信息,请参阅 审核概述。
满足法规符合性标准:Azure SQL 托管实例支持符合各种法规框架,包括 ISO 27001、PCI DSS、FedRAMP 和 SOX。 查看并实施特定于行业要求的控件。
使用资源锁:应用资源锁以防止意外删除或修改关键 SQL 托管实例资源。 这有助于维护配置完整性,并防止未经授权的更改可能会影响合规性。 有关详细信息,请参阅 资源锁。
使用 Azure 顾问进行监视:使用 Azure 顾问接收针对安全性、成本优化、性能和卓越运营的个性化建议。 定期查看并实施顾问建议,以维护最佳做法。 有关详细信息,请参阅 Azure 顾问。
相关内容
有关全面的安全指南,请参阅 Azure SQL 托管实例安全最佳做法 和 Azure SQL 托管实例安全功能概述。