Compartilhar via

确保Azure Database for PostgreSQL 服务器的安全

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

本文将指导您了解如何保护“Azure Database for PostgreSQL”服务器的部署。

重要

Microsoft正在更新Azure Database for PostgreSQL的TLS证书,以轮换证书颁发机构和更新的证书链。

如果客户端 配置使用 TLS 的建议配置,则无需执行作。

根证书轮换计划:

  • 从 2026 年 3 月 9 日起,针对中国区域的根 CA 证书,将从 DigiCert 全球根 CA (G1) 更新为 DigiCert 全球根 G2。

网络安全

网络安全部分指导你阻止公共访问,并使用网络功能将 PostgreSQL 集成到安全分段的云网络架构中。

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

  • Private Endpoints:使用 Private Endpoints从您的虚拟网络中安全地连接到 PostgreSQL。

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

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

网络安全文章位于网络栏目中:

标识管理

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

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

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

  • 使用托管标识来保护应用程序访问:使用Azure中的托管标识安全地对应用程序和服务进行身份验证,而不需管理凭据。 这种方法提供了一种安全且简化的方式来访问诸如 PostgreSQL 的 Azure 数据库等资源。 有关详细信息,请访问 Managed Identities

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

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

访问控制

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

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

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

  • 遵循 Entra 最佳实践:利用多因素认证(MFA)、条件访问策略、实时(JIT)访问保护您的用户和数据库。

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

数据保护

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

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

加密传输中的数据

  • Verify 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 storage基础结构。 它涵盖主服务器、副本、时点恢复(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工具集中安全分析,保持准确的时间同步,并确保有效的日志保留策略。

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

  • 启用诊断日志收集:选择类别组“audit”,确保启用诊断日志记录。

  • 启用审核日志记录:使用 pgaudit 扩展配置 PostgreSQL 的审核日志记录以跟踪和记录数据库活动。 有关详细信息,请访问 Azure Database for PostgreSQL 审计日志以获取更多信息。

备份和恢复

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

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

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

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

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

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