使用 PostgreSQL 在 Oracle Cloud Infrastructure Database 中配置安全套接字层

简介

Oracle Cloud Infrastructure Database with PostgreSQL(OCI Database with PostgreSQL) 仅支持对数据库实例进行安全套接字层 (SSL) 加密。通过使用 SSL,可以加密应用程序与 PostgreSQL 数据库实例之间的连接。

SSL 加密对于使用 PostgreSQL 实例保护与 OCI 数据库的客户端连接至关重要,可确保在传输期间提供数据保护。通过配置 hostssl 连接类型并使用 sslmode 参数,可以控制 SSL 验证的级别以提高安全性。缺省情况下,为客户机和服务器连接启用 TLSv1.2,以符合行业标准做法。对于完全安全且合规的 PostgreSQL 环境,利用这些 SSL 设置至关重要。

对于安全客户端连接,OCI Database with PostgreSQL 仅允许 pg_hba.conf 文件中使用 hostssl 连接类型。hostssl 条目确保使用 SSL 对 TCP/IP 连接进行加密,要求客户机使用 SSL 进行验证。您还可以通过 sslmode 参数指定 SSL 验证级别,该参数包括 requireverify-caverify-full 等选项。

Currently, both the ssl_max_protocol_version and ssl_min_protocol_version parameters are configured in OCI Database with PostgreSQL to use TLSv1.2 for both client and server connections.但是,需要注意的是,OCI Database with PostgreSQL 无法强制实施特定的 TLS 版本,因为这些参数是只读系统变量。

有关 PostgreSQL 数据库中 SSL 支持的更多信息,请参见 Secure TCP/IP Connections with SSL

注:对于 PostgreSQL,所有 OCI 区域都提供 SSL 支持。

目标

SSL 模型

下表说明了不同 sslmode 值所解决的风险,以及每个值的安全影响和相关开销。

SSL 窃听保护 MITM 保护 语句
禁用 我并不关心安全性,也不想支付加密的开销。
允许 或许 我不在乎安全性,但如果服务器坚持使用加密,我将支付加密开销。
喜欢 或许 我不在乎加密,但如果服务器支持加密,我希望支付加密的开销。
需要 我希望对我的数据进行加密,并接受开销。我相信网络将确保我始终连接到我想要的服务器。
verify-ca 取决于 CA 策略 我希望对数据进行加密,并接受开销。我想确保我连接到一个我信任的服务器。
验证已满 我希望对数据进行加密,并接受开销。我想确保我连接到我信任的服务器,并且这是我指定的服务器。

有关各种 sslmodes 的更多信息,请参见 Table 31-1 SSL MODE DESCRIPTIONS

在 OCI Database with PostgreSQL 中,sslmode 必须设置为 require 或更高版本(verify-caverify-full),因为由于监管和合规要求,不支持非 SSL 连接。SSL 连接是必需的,以确保所有在途连接都按照 OCI 的合规性标准进行加密。

包含 PostgreSQL 数据库节点的 OCI 数据库中使用的证书由通过 OCI Certificates 服务管理的专用证书颁发机构 (CA) 颁发,该服务遵循 OCI 批准的标准化配置。这种方法与传统的自签名证书不同,后者通常使用使用 OpenSSL 等工具生成的非标准设置。

使用各种 SSL 模式使用 PostgreSQL 建立与 OCI 数据库的连接

与不带 SSL 的 PostgreSQL 的 OCI 数据库的连接尝试将被拒绝,并显示以下消息。

no pg_hba.conf entry for host "yy.yy.yy.yy", user "xxxxx", database "zzzzzz", no encryption

每当出现上述错误消息时,建议检查 SSL 模式值并将 sslmode 参数设置为 require 或更高值以解决该问题。

使用 PostgreSQL 确定 OCI 数据库中的 TLS 版本

下图显示了使用 PostgreSQL 实例连接到 OCI 数据库时的连接加密状态。

图像

可以运行以下查询从 pg_settings 检索信息。

图像

您可以使用以下查询,按流程、客户端和应用收集有关 OCI 数据库的详细信息,以及 PostgreSQL 实例的 SSL 使用情况。

图像

可以使用系统视图 pg_stat_ssl 查看所有连接的 SSL 状态。有关详细信息,请参阅表 27.8. pg_stat_ssl 视图

图像

在不同的 GUI 工具中配置 SSL 模式

以下是一些可用于连接到 OCI PostgreSQL 数据库的开源 GUI 工具。此任务演示如何在这些工具中配置 sslmoderequire 或更高版本,以防止连接到 OCI PostgreSQL 数据库时出现连接问题。

确认

更多学习资源

通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心