你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:Azure SQL 数据库
Azure SQL 数据库 是一个完全托管的平台即服务(PaaS)数据库引擎,能够处理大部分数据库管理功能,如升级、补丁、备份和监控,无需用户参与。 由于它经常存储关键业务数据,包括客户记录、财务信息和知识产权,保护您的Azure SQL 数据库对于防范数据泄露、未经授权访问和合规违规至关重要。
本文提供安全建议,帮助您保护您的 Azure SQL 数据库 部署。
本文中的安全建议实施零信任原则:“显式验证”、“使用最低特权访问”和“假设违规”。 有关全面的零信任指南,请参阅 零信任指南中心。
减少攻击面并减轻威胁
由于 Azure SQL 数据库 是一个托管型 PaaS 引擎,Microsoft 加固了操作系统和基础设施。 你的职责集中在减少暴露于攻击的应用和数据表,以及及早发现威胁。
运行SQL漏洞评估:利用SQL漏洞评估发现、跟踪并修复潜在的数据库错误配置和漏洞。 安排定期扫描,并根据它建立的基线采取行动。 有关详细信息,请参阅 SQL 漏洞评估。
防止SQL注入:在应用中使用参数化查询和存储过程,切勿将用户输入串接到SQL语句中。 SQL注入仍然是针对数据库应用最常见的攻击途径之一。 有关详细信息,请参阅 SQL 注入。
实施纵深防御:结合网络隔离、身份控制、数据保护和监控,确保没有单一控制成为单点故障。 欲了解更多信息,请参阅 应对常见安全要求操作手册。
网络安全
Azure SQL 数据库 的网络安全有助于防止未经授权的连接,减少攻击风险,使只有可信来源能够访问您的数据库。
使用私有端点:通过私有IP地址使用Azure 专用链接连接到您的Azure SQL 数据库,以避免暴露数据库到公共互联网。 私人连接减少了攻击面和数据外泄的风险。 有关详细信息,请参阅 Azure SQL 数据库的 Azure 专用链接。
禁用公网访问:当你依赖私有端点时,完全禁用公网访问,这样所有连接都会经过私有端点。 有关详细信息,请参阅 “拒绝公用网络访问”。
配置服务器级防火墙规则:用IP防火墙规则控制Azure中对逻辑服务器的访问,这些规则指定哪些地址或范围可以连接,遵循最小权限原则。 有关详细信息,请参阅 Azure SQL 数据库和 Azure Synapse IP 防火墙规则。
配置数据库级防火墙规则:为了更细致的控制,可以配置适用于单个数据库的数据库级防火墙规则,从而实现每个数据库的访问策略。 更多信息请参见 数据库级IP防火墙规则。
限制流量至特定虚拟网络:使用虚拟网络规则,只允许来自Azure虚拟网络中特定子网的流量,从而增加基于IP规则的网络隔离。 有关详细信息,请参阅 Azure SQL 数据库的虚拟网络规则。
设置最小TLS版本:将逻辑服务器的最低TLS版本配置为1.2或更高,以拒绝使用较旧、较弱协议的连接。 更多信息请参见 最低TLS版本。
选择合适的连接策略:当你希望所有流量通过一个端口通过网关而非暴露后端节点端口范围时,使用代理连接策略,并在 Azure 内部使用重定向以降低延迟。 在覆盖默认设置之前,先了解其中的权衡取舍。 有关详细信息,请参阅 Azure SQL 数据库连接体系结构。
身份和访问管理
强有力的身份和认证控制限制了授权用户和应用程序访问您的 Azure SQL 数据库 资源,同时实现了集中身份管理和更便捷的账户生命周期控制。
认证与账户管理
配置 Microsoft Entra 管理员:为您的逻辑服务器指定一名 Microsoft Entra 管理员,以启用集中式身份管理和高级认证策略。 有关详细信息,请参阅 配置Microsoft Entra 身份验证。
使用 Microsoft Entra 认证:优先使用 Microsoft Entra 认证而非 SQL 认证,以便集中管理身份并访问条件访问和多因素认证等功能。 有关详细信息,请参阅 Microsoft Entra 身份验证。
尽量禁用SQL认证:为了最大安全性,要求所有连接使用Microsoft Entra认证,并关闭SQL认证,消除SQL密码弱或被泄露的风险。 有关详细信息,请参阅 Microsoft Entra 专用身份验证。
创建包含数据库用户:尽可能将包含数据库用户映射到Microsoft Entra身份或组,而非服务器级登录,简化权限管理并减少服务器级访问。 有关详细信息,请参阅 包含的数据库用户。
强制多因素认证:通过条件访问要求对管理和连接逻辑服务器的 Microsoft Entra 身份进行多因素认证(MFA),增加除密码外的保护层。 欲了解更多信息,请参见 《多因素认证工作原理》。
应用条件访问策略:使用条件访问根据用户位置、设备合规性和风险控制访问,为每次访问尝试提供自适应安全。 有关详细信息,请参阅 条件访问。
为逻辑服务器使用托管身份:为逻辑服务器分配系统分配或用户分配的托管身份,使其能够访问 Azure 密钥保管库(用于 TDE 客户管理的密钥)和 Azure 存储(用于审计),而无需存储秘密。 欲了解更多信息,请参见 Microsoft Entra for Azure SQL 中的管理身份。
执行强密码策略:如果你使用SQL认证,要求使用复杂且难以猜测的密码,定期更换密码,避免在多个账户间重复使用。 有关详细信息,请参阅 密码策略。
特权访问
授予最小权限:只授予用户工作所需的最低权限,并定期审查权限。 有关详细信息,请参阅 数据库引擎权限入门。
分开管理职责:避免向所有管理员授予广泛的管理员权限。 使用细粒度权限,并在各项管理职能中实施职责分离。 有关详细信息,请参阅权限。
通过数据库角色分配访问权限:利用内置和自定义数据库角色实现基于角色的安全性,将用户分配给角色,而非单独授予权限。 有关详细信息,请参阅 数据库级角色。
使用 Azure RBAC 进行管理操作:使用基于 Azure 的角色访问控制对 Azure SQL 数据库 管理操作的访问,创建自定义角色,只授予特定任务所需的权限。 有关详细信息,请参阅 数据库的 Azure 内置角色。
提供及时特权访问:使用Microsoft Entra Privileged Identity Management PIM(PIM)授予对管理角色的限时、基于批准的访问权限,使用户仅在需要时才拥有提升权限。 有关详细信息,请参阅 Privileged Identity Management。
监控特权活动:启用审计以跟踪特权账户的行为,检查日志中的可疑变更,并对敏感操作发出警报。 有关详细信息,请参阅 Azure SQL 数据库的审核。
数据保护
数据保护通过加密、掩盖和分类保护您的信息,以防止未经授权的泄露、篡改或敏感信息丢失。
启用透明数据加密(TDE):加密您的数据库、日志和备份文件,保持静止状态。 新数据库默认启用 TDE;在 Azure 密钥保管库 中使用客户管理密钥以增强对加密密钥的控制。 更多信息请参见透明 数据加密(TDE) 和 客户管理密钥的TDE。
用始终加密保护敏感数据:使用始终加密来保护高度敏感的数据,无论是在使用中、静止状态还是传输中,甚至管理员都无法查看明文值。 使用安全隔离区以获得更丰富的功能。 有关详细信息,请参阅 Always Encrypted。
通过账本创建防篡改数据:使账本能够创建不可篡改、可加密验证的敏感数据变更记录,有助于满足监管要求。 有关详细信息,请参阅账本。
用动态数据掩蔽保护敏感数据:应用动态数据掩蔽,为非特权用户混淆敏感数据,同时保留应用程序功能,同时不更改应用代码。 有关详细信息,请参阅 动态数据掩码。
分类和标记敏感数据:使用 SQL 数据发现与分类来识别、分类和标记敏感数据,使审计和掩蔽等功能能够利用元数据,并报告敏感数据的存放位置。 有关详细信息,请参阅 数据发现和分类。
用列级权限限制访问:在列级授予或拒绝权限,只有需要敏感列的用户才能阅读或修改。 更多信息请参见 GRANT 对象权限。
使用行级安全性 (RLS) 限制行访问:实施 RLS,使用户只能访问与自己相关的数据行,从而提供非常适合多租户场景的应用程序级安全性。 有关详细信息,请参阅 行级安全性。
日志记录和监控
全面的日志记录和监控帮助您发现异常活动,调查事故,并为您的数据库展示合规性。
启用 Microsoft Defender for SQL:启用 Microsoft Defender for SQL,以检测异常且潜在有害的访问或利用数据库的行为,包括漏洞评估和高级威胁保护。 有关详细信息,请参阅 Microsoft Defender for SQL。
与 Microsoft Defender for Cloud 集成:使用 Microsoft Defender for Cloud 进行集中式安全管理、安全建议及跨 Azure 资源的集成威胁防护。 欲了解更多信息,请参见 Defender for Cloud 中的 Microsoft Defender for SQL。
配置威胁防护警报:设置针对可疑活动的警报,如SQL注入尝试、异常访问模式和暴力破解认证,并将通知发送给正确的接收者。 更多信息请参见 高级威胁防护。
启用审计:配置审计以跟踪数据库事件,并将其写入 Log Analytics 工作区、Azure 存储 或事件中心。 审计服务器级和数据库级事件,确保全面覆盖。 有关详细信息,请参阅 Azure SQL 数据库的审核。
流式诊断日志:配置诊断设置,将日志(包括安全类别
SQLSecurityAuditEvents)发送至 Azure Monitor 日志、事件中心或 Azure 存储,以便保留和分析。 欲了解更多信息,请参见 Monitor Azure SQL 数据库 with Azure Monitor。定期审查审计日志:建立流程审查可疑活动,重点关注特权账户操作、认证失败和敏感数据访问。 有关详细信息,请参阅 Azure SQL 数据库的审核。
合规性和治理
治理控制帮助您展示合规性,并在数据库中强制执行一致的安全配置。
通过 Microsoft Defender for Cloud 跟踪合规性:使用合规仪表盘评估数据库是否符合 PCI DSS、ISO 27001 和 SOC 等标准,并跟踪失效控制的修复情况。 欲了解更多信息,请参见 监管合规仪表盘。
用 Azure Policy 强制配置:为 Azure SQL 数据库 分配内置的 Azure Policy 定义,用于审计和执行如 TDE、审计、私有端点和仅支持 Microsoft Entra 认证等控制。 欲了解更多信息,请参见Azure Policy for Azure SQL 数据库的内置定义。
使用Microsoft Purview管理敏感数据:在Microsoft Purview中注册并扫描Azure SQL 数据库,以便对您的数据资产进行编目、分类和管理敏感数据。 有关详细信息,请参阅 在 Microsoft Purview 中连接到并管理 Azure SQL 数据库。
应用 Microsoft 云安全基准:将 Microsoft 云安全基准作为 Azure 全域的基线,优先排序并验证你对 Azure SQL 数据库 施加的控制措施。 更多信息请参见Microsoft云安全基准。
备份和恢复
可靠的备份和恢复过程可保护数据免受故障、灾难或攻击造成的丢失。 他们也帮助你实现康复目标。
验证自动备份配置:确认自动备份已配置,且保留符合您的需求。 Azure SQL 数据库默认提供自动化备份,保留时间可配置,范围从1天到35天不等。 有关更多信息,请参阅自动备份。
配置备份存储冗余:选择符合您可用性和灾难恢复需求的备份存储冗余:本地冗余(LRS)、区域冗余(ZRS)、地理冗余(GRS)或地理区域冗余(GZRS)。 有关详细信息,请参阅 备份存储冗余。
使用长期保留以实现合规:配置长期保留(LTR)以便在合规要求保留超过默认期限时,存储完整备份最长达10年。 有关详细信息,请参阅 长期保留。
测试备份和恢复程序:定期测试恢复,确保其符合恢复时间目标,且恢复后的数据库在完整数据下完全正常。 有关详细信息,请参阅 “恢复数据库”。
实施地理恢复以实现灾难恢复:使用地理恢复将数据库从地理冗余备份恢复到任何 Azure 区域,保护其免受区域故障的影响。 有关详细信息,请参阅异地还原。
监控备份活动:使用Azure Monitor跟踪备份操作并配置故障警报。 有关详细信息,请参阅 监视和排查备份存储消耗问题。