保护 Azure Database for PostgreSQL 服务器

Azure Database for PostgreSQL 是一种完全托管的数据库服务,可提供内置的高可用性、自动备份和缩放功能。 保护 PostgreSQL 数据库部署对于保护敏感数据并保持符合行业标准至关重要。

本文介绍如何保护 Azure Database for PostgreSQL 服务器部署。

重要

我们已为 Azure Database for PostgreSQL 启动 TLS 证书轮换 ,以更新新的中间 CA 证书和生成的证书链。 根 CA 保持不变。

如果客户端配置实现 TLS 的建议配置,则无需执行任何作。

证书轮换计划

  • 2026年春节(春节)结束后,中国地区将进行证书轮换,其中包括 对其中一种根 CA 的更改

网络安全

“网络安全”部分将指导你防止公共访问和使用网络功能将 PostgreSQL 集成到安全的分段云网络体系结构中。

  • 禁用公用网络访问:禁用 PostgreSQL 的公共网络访问,以防止暴露在 Internet 上。 此作可确保只有受信任的网络才能访问数据库。

  • 专用终结点:使用 专用终结点 从虚拟网络中安全地连接到 PostgreSQL。

  • 或者,使用虚拟网络集成使用虚拟网络集成 将 PostgreSQL 连接到虚拟网络。 此集成允许从 Azure 资源和服务器安全访问消耗的资源,例如 AI。

  • 旧防火墙规则和服务终结点:如果需要允许从特定 IP 地址进行访问,请使用 旧防火墙规则和服务终结点。 但是,不建议使用此方法。 相反,首选使用专用终结点或虚拟网络集成。

网络安全文章位于网络部分中:

标识管理

“标识管理”部分重点介绍使用集中式标识和访问管理系统进行身份验证、保护标识和访问控制。 它涵盖了适用于应用程序的强身份验证机制和托管标识等最佳做法。

下面是标识管理部分的一些可能的安全服务、功能和最佳做法:

  • 使用 Entra 而不是数据库本地身份验证:应禁止 PostgreSQL 服务器的本地身份验证。 请改用Microsoft Entra 身份验证(非混合模式)来管理对数据库的访问。 Microsoft Entra 通过强大的安全控制和 Defender for Identity 实时保护提供集中式身份验证。 有关详细信息,请访问一般 Microsoft Entra ,并使用 Azure Database for PostgreSQL Microsoft Entra 身份验证

  • 使用托管标识进行安全应用程序访问:使用 Azure 中的托管标识安全地对应用程序和服务进行身份验证,而无需管理凭据。 这提供了访问 Azure Database for PostgreSQL 等资源的安全和简化方法。 有关详细信息,请访问 托管标识

  • 通过条件访问策略强制执行安全性:在 Microsoft Entra 中设置条件访问策略,以基于用户、位置或设备上下文强制实施安全控制。 这些策略允许基于风险动态强制实施安全要求,从而增强整体安全态势。 有关详细信息,请访问 Microsoft Entra 条件访问

  • 本地身份验证应使用 SCRAM 身份验证:如果必须使用本地身份验证,请确保强制实施强密码策略。 使用密码复杂性要求和常规密码轮换,以最大程度地降低帐户泄露的风险。 有关详细信息,请访问 Azure Database for PostgreSQL 中的 SCRAM 身份验证

存取控制

访问控制部分侧重于根据最低特权原则保护访问级别。 它强调通过限制和管理提升的权限、强制实施多重身份验证并确保记录和审核特权作,来最大程度地降低对敏感资源进行未经授权的访问的风险。

下面是访问控制部分的一些可能的安全服务、功能和最佳做法:

  • 使用 Entra 角色进行访问控制:实现 Azure Role-Based 访问控制(Role-Based 访问控制(RBAC)来管理对 Azure Database for PostgreSQL 资源的访问。 根据最低特权原则分配角色,确保用户和应用程序仅具有所需的权限。 有关详细信息,请访问 Azure 基于角色的访问控制(RBAC), 并管理 Azure Database for PostgreSQL 中的 Microsoft Entra 角色

  • 遵循 Entra 最佳做法:利用 MFA、 条件访问策略,实时 (JIT) 访问来保护用户和数据库。

  • 管理本地数据库用户、角色和权限:使用 PostgreSQL 的内置角色管理来控制数据库级别的访问。 创建具有特定权限的自定义角色,以强制实施最低特权原则。 定期查看和审核这些角色,以确保符合安全策略。 有关详细信息,请访问 在 Azure Database for PostgreSQL 中创建用户

数据保护

数据保护部分侧重于保护静态和传输中的敏感数据。 它可确保加密数据、控制访问,并保护敏感信息免受未经授权的访问。 它强调使用加密、安全连接和数据掩码来保护数据完整性和机密性。

下面是数据保护部分的一些可能的安全服务、功能和最佳做法:

加密传输中的数据

  • 验证 TLS 连接:Azure PostgreSQL 始终使用 SSL 或 TLS 来加密应用程序和数据库之间的传输数据。 应将应用程序配置为验证使用的证书,例如根 CA、过期证书、主机名不匹配和证书吊销。 这种做法有助于保护敏感信息免受窃听和中间人攻击。 有关详细信息,请访问 Azure Database for PostgreSQL 中 TLS 和 SSL 的安全连接

  • 确保客户端已安装最新的 TLS 证书:确保客户端应用程序安装了最新的 TLS 证书以支持安全连接。 这种做法有助于防止连接失败,并确保应用程序能够与 PostgreSQL 服务器建立安全连接。 有关详细信息,请访问 下载根 CA 证书并更新应用程序客户端

  • 要求使用 TLS 1.3:将 PostgreSQL 服务器配置为要求所有连接的 TLS 1.3。 此配置可确保仅使用最新且最安全的协议版本,从而提供更好的安全性和性能。 有关详细信息,请访问 TLS 版本

静态加密

  • 数据始终使用 SMK 以透明方式静态加密:Azure Database for PostgreSQL 使用服务管理的密钥(SMK)自动加密静态数据。 此加密可确保数据受到保护,而无需额外配置。 它依赖于基础 Azure 存储基础结构。 它涵盖主服务器、副本、时间点恢复(PITR)和备份。 有关详细信息,请访问 Azure Database for PostgreSQL 中的数据加密

  • 使用客户管理的密钥进行其他控制:如果需要对加密密钥进行更多控制,请使用存储在 Azure Key Vault 中的客户管理的密钥(CMK)。 此选项允许你管理加密密钥,并提供更多的安全性和符合性选项。 有关详细信息,请访问 Azure Database for PostgreSQL 中的客户托管密钥 ,并在 Azure Database for PostgreSQL 中配置数据加密

  • 在 KV 中设置自动密钥轮换:如果使用客户管理的密钥,请在 Azure Key Vault 中配置自动密钥轮换,以确保加密密钥定期更新。 轮换密钥后,Azure Database for PostgreSQL 支持自动密钥版本更新。 有关详细信息,请访问[了解 Azure Key Vault 中的自动轮换](/key-vault/general/autorotation),以获取更多 Key Vault 的详细信息。 有关详细信息,请访问 在服务器预配期间使用客户管理的密钥配置数据加密 ,详细了解如何配置自动密钥轮换。

  • 使用客户端加密加密对超敏感数据进行加密:对于超敏感数据,请考虑实现客户端加密。 此方法涉及在将数据发送到数据库之前对其进行加密,确保仅将加密的数据存储在数据库中。 这种做法提供了一个更安全的层,因为数据库本身,因此数据库管理员无权访问未加密的数据。

数据掩码和修订

  • 实现数据掩码:使用 PostgreSQL 匿名化程序扩展 支持:

  • 匿名转储:将屏蔽的数据导出到 SQL 文件中。

  • 静态掩码:根据规则删除个人数据。

  • 动态掩码:仅隐藏已屏蔽用户的个人数据。

  • 屏蔽视图:为已屏蔽的用户生成专用视图。

  • 屏蔽数据包装器:对外部数据应用掩码规则。

日志记录和威胁检测

日志记录和威胁检测部分涵盖用于检测 Azure 环境中的威胁的控制。 其中介绍了如何为 Azure 服务启用、收集和存储审核日志。 它强调使用本机威胁检测功能、集中式日志管理和适当的日志保留,以便进行安全调查和符合性。 本部分重点介绍如何生成高质量的警报,通过 Azure 工具集中分析安全分析,保持准确的时间同步,并确保有效的日志保留策略。

下面是日志记录和威胁检测部分的一些可能的安全服务、功能和最佳做法:

备份和恢复

备份和恢复部分重点介绍如何确保在故障或灾难中定期备份、保护和恢复跨 Azure 服务的数据和配置。 它强调自动备份、保护备份数据,并确保对恢复过程进行测试和验证,以满足恢复时间目标(RTO)和恢复点目标(RPO)。 本部分还重点介绍了监视和审核备份过程的重要性,以确保合规性和就绪性。 有关概述,有关详细信息,请访问 Azure Database for PostgreSQL 的业务连续性概述

下面是备份和恢复检测部分的一些可能的安全服务、功能和最佳做法:

  • 利用高可用性:为 PostgreSQL 灵活服务器实例实现高可用性(HA)配置,以最大程度地减少停机时间并确保持续访问数据库。 有关详细信息,请访问 Azure Database for PostgreSQL 中的高可用性(可靠性),配置高可用性

  • 配置自动备份:Azure Database for PostgreSQL 自动执行数据库文件的每日备份,并持续备份事务日志。 可以将备份从 7 天保留到 35 天。 可以将数据库服务器还原到备份保留期内的任何时间点。 RTO 取决于要还原的数据大小以及执行日志恢复的时间。 它可以从几分钟到 12 小时不等。 有关详细信息,请访问 Azure Database for PostgreSQL 中的备份和还原

  • 配置只读副本:使用只读副本从主服务器卸载读取作,从而提高性能和可用性。 还可以将只读副本用于灾难恢复方案,使你能够快速切换到主服务器故障的副本。 有关详细信息,请访问 Azure Database for PostgreSQL 中的只读副本

  • 使用客户管理的密钥加密保护备份数据:使用静态加密来保护备份数据。