Azure Database for MySQL是一种完全托管的关系数据库服务,可提供高可用性、自动备份和可缩放的 MySQL 兼容的数据库托管。 对灵活服务器部署环境进行安全加固,有助于保护敏感数据、减少身份和网络暴露风险,并满足合规要求。
本文提供了一些安全建议,帮助保护 Azure Database for MySQL 的部署。
本文中的安全建议实施零信任原则:“显式验证”、“使用最低特权访问”和“假设违规”。 有关全面的零信任指南,请参阅 零信任指南中心。
网络安全
网络安全控制有助于限制客户端访问Azure Database for MySQL灵活服务器实例的方式,并减少对公共 Internet 流量的暴露。
- 禁用生产服务器的公用网络访问:当客户端可以通过专用终结点进行连接时禁用公共访问,以便只有专用连接路径才能到达灵活服务器。 有关详细信息,请参阅 Azure Database for MySQL 灵活服务器的专用链接。
- 对公共访问服务器使用专用终结点:使用专用链接通过虚拟网络中的专用 IP 地址公开灵活服务器,并限制对批准的专用终结点连接的数据访问。 有关详细信息,请参阅 Azure Database for MySQL 灵活服务器的专用链接。
- 部署具有虚拟网络集成的专用访问服务器:当必须将灵活服务器注入到委托子网中时,请使用虚拟网络集成,并且只能从同一虚拟网络、对等虚拟网络、VPN 或 ExpressRoute 进行访问。 有关详细信息,请参阅使用虚拟网络集成的专用网络访问Azure Database for MySQL灵活服务器。
- 限制公共防火墙规则:仅对需要公共连接的方案使用公共防火墙规则,仅允许特定的 IPv4 范围,并避免允许从所有Azure服务访问的选项,因为它可以允许来自其他客户的订阅的连接。 有关详细信息,请参阅 Azure Database for MySQL 灵活服务器的公用网络访问。
身份和访问管理
标识和访问控制有助于集中身份验证、减少凭据公开,并为Azure管理操作和数据库访问强制实施最低特权。
- 使用Microsoft Entra身份验证进行数据库访问:为Azure Database for MySQL灵活服务器配置Microsoft Entra身份验证,以便用户和应用程序可以使用Microsoft Entra标识进行身份验证,而不是仅依赖于 MySQL 密码。 有关详细信息,请参阅Azure Database for MySQL 灵活服务器的 Microsoft Entra 身份验证。
- 尽可能仅使用 Microsoft Entra 进行身份验证:在将用户和应用程序迁移到 Microsoft Entra 身份验证后,禁用 MySQL 本机身份验证,以减少对灵活服务器基于密码的访问路径。 有关详细信息,请参阅Azure Database for MySQL 灵活服务器的 Microsoft Entra 身份验证。
- 将托管标识用于应用程序连接:使用具有Microsoft Entra身份验证的托管标识或服务主体,以便应用程序使用令牌而不是嵌入式数据库密码连接到Azure Database for MySQL。 有关详细信息,请参阅Azure Database for MySQL 灵活服务器的 Microsoft Entra 身份验证。
- 分配最低特权数据库权限:为每个应用程序或管理功能创建专用 MySQL 用户或Microsoft Entra映射的数据库用户,并仅授予每个标识所需的架构、表和操作权限。 有关详细信息,请参阅在 Azure Database for MySQL 中创建用户。
- 对 Azure Database for MySQL 管理员强制实施条件访问:对可通过 Azure 资源管理器 工具(如 Azure 门户、Azure CLI 和 Azure PowerShell)管理灵活服务器资源的身份应用要求进行多重身份验证的条件访问策略。 更多信息请参见“要求 Azure 管理多重身份验证”。
数据保护
默认情况下,Azure Database for MySQL使用服务管理的密钥加密静态数据。 通过以下控制,可以更好地控制加密、密钥管理和加密客户端连接。
-
要求加密的客户端连接:请保持
require_secure_transport处于启用状态,以便客户端与 Azure Database for MySQL 之间的连接使用 TLS 加密,并避免以明文形式传输数据库流量。 有关详细信息,请参阅Azure Database for MySQL中的传输层安全性(TLS)。 -
对 MySQL 8.0 服务器强制使用 TLS 1.3:在确认客户端应用程序和驱动程序支持 TLS 1.3 后,将 Azure Database for MySQL 8.0 灵活服务器上的
tls_version设置为TLS 1.3。 有关详细信息,请参阅Azure Database for MySQL中的传输层安全性(TLS)。 - 验证客户端中的服务器证书:配置客户端应用程序以验证服务器证书链并仅信任根证书颁发机构,因此例程中间 CA 或服务器证书轮换不会中断安全连接。 有关详细信息,请参阅Azure Database for MySQL中的传输层安全性(TLS)。
- 使用客户管理的密钥进行密钥控制:当需要分离职责、客户控制的密钥生命周期管理或用于静态数据加密的更多合规性控制时,请使用存储在Azure 密钥保管库中的客户管理的密钥。 有关详细信息,请参阅 使用 Azure Database for MySQL 的客户托管密钥进行数据加密。
- 保护客户管理的密钥依赖项:对存储客户管理的密钥的 密钥保管库 启用软删除和清除保护,将所需的密钥权限分配给服务器的用户分配托管标识,并监视密钥访问,因为密钥访问丢失会使灵活服务器实例无法访问。 有关详细信息,请参阅 使用 Azure Database for MySQL 的客户托管密钥进行数据加密。
日志记录和监控
日志记录和监视控制有助于检测可疑数据库活动、调查管理更改,并保留符合性的审核证据。
-
启用 MySQL 审核日志:设置为
audit_log_enabledON:选择符合安全性和符合性要求的审核事件类型,并捕获连接、管理、DDL 和 DML 事件进行调查。 有关详细信息,请参阅教程:使用 Azure Database for MySQL 灵活服务器配置审核日志。 -
将审核日志路由到Azure Monitor:配置诊断设置,将资源日志类别发送到
MySqlAuditLogsLog Analytics工作区、事件中心或存储帐户,以便查询表中的AzureDiagnostics审核事件、保留证据并将数据库审核事件与安全操作工作流集成。 有关详细信息,请参阅教程:使用 Azure Database for MySQL 灵活服务器配置审核日志。 - 使用审核工作簿:使用内置Azure Monitor审核工作簿进行Azure Database for MySQL查看管理操作、审核摘要、连接事件、表访问摘要和已识别的错误。 有关详细信息,请参阅教程:使用 Azure Database for MySQL 灵活服务器配置审核日志。
- 为开源关系数据库启用Defender:为Microsoft Defender for Cloud中的开源关系数据库启用Microsoft Defender,以便Azure Database for MySQL灵活服务器实例可以针对异常或潜在有害的数据库活动生成警报。 有关详细信息,请参阅在 Azure 上为开源关系数据库启用Defender。
合规性和治理
合规性和治理控制有助于跨Azure Database for MySQL灵活服务器机群强制实施一致的安全配置,并防止生产资源意外或未经授权的更改。
-
使用 Azure Policy 强制实施诊断日志记录:为诊断设置分配内置Azure Policy定义
microsoft.dbformysql/flexibleservers,例如将日志路由到 Log Analytics、事件中心或存储的策略,以便一致地收集灵活的服务器审核数据。 有关详细信息,请参阅 Azure Policy 内置策略定义。 -
将删除锁应用于生产服务器:将锁添加到
CanNotDelete生产Azure Database for MySQL灵活服务器资源,以减少意外删除的风险,同时保留正常的操作更改。 有关详细信息,请参阅 锁定 Azure 资源来保护基础结构。 - 标记数据库资源进行治理:将工作负载、环境、数据分类、所有者和成本中心等标记应用于Azure Database for MySQL灵活的服务器资源,以便策略分配、库存查询和成本评审可以区分生产和敏感的数据库工作负荷。 有关详细信息,请参阅使用标记对 Azure 资源和管理层次结构进行组织。
备份和恢复
备份和恢复控制可帮助你从意外删除、数据损坏、区域中断和有风险的更改操作中恢复。
- 为恢复目标配置备份保留:根据工作负荷恢复点要求和符合性需求,设置Azure Database for MySQL灵活服务器备份保留期(介于 1 到 35 天之间)。 有关详细信息,请参阅在 Azure Database for MySQL 中进行备份和还原。
- 使用异地冗余备份进行区域恢复:在需要备份复制到配对区域时启用异地冗余备份存储,并在发生区域性服务中断后能够进行异地还原。 有关详细信息,请参阅Azure Database for MySQL灵活服务器的业务连续性概述。
- 在高风险更改之前触发按需备份:在架构迁移、主要配置更改或维护操作之前创建按需备份,使最近的还原点与服务器的备份保留策略保持一致。 有关详细信息,请参阅使用 Azure 门户触发Azure Database for MySQL灵活服务器实例的按需备份。
- 测试还原过程:验证代表性工作负荷的时间点还原和异地还原过程,以便了解恢复期间所需的服务器设置、标记、网络规则和还原后操作。 有关详细信息,请参阅在 Azure Database for MySQL 中进行备份和还原。