如何在 Aurora PostgreSQL 兼容版数据库实例上开启 SSL 以及如何使用 SSL 证书连接到我的实例?

1 分钟阅读
0

我想使用安全套接字层(SSL)连接来连接到 Amazon Aurora PostgreSQL 兼容版数据库集群。

简短描述

您可以使用 SSL 或传输层安全性协议(TLS)来加密应用程序与 Aurora PostgreSQL 兼容版数据库集群的连接。SSL 和 TLS 连接可以为您的集群提供单层安全保护,并对在客户端和集群之间移动的数据进行加密。有关更多信息,请参阅使用 SSL/TLS 加密与数据库集群的连接

为了安全起见,在建立连接之前,您必须在客户端和服务器上配置 SSL 连接。如果服务器上未配置 SSL,则客户端可能会发送密码等敏感信息。有关创建受 SSL 保护的连接的更多信息,请参阅 PostgreSQL 文档中的 SSL 支持部分。

PostgreSQL 的 SSL 模式包括:

  • 验证-完整
  • 验证-ca
  • 要求
  • 首选
  • 允许
  • 禁用

有关为使用案例选择正确的 SSL 模式的更多信息,请参阅 PostgreSQL 文档中的不同模式下提供的保护部分。

解决方法

Amazon Relational Database Service(Amazon RDS)可在您创建集群时会为它创建 SSL 或 TLS 认证。有关详细信息,请参阅 Amazon Aurora PostgreSQL 的安全性

通过 SSL/TLS 连接到您的数据库集群

1.    下载 SSL/TSL 证书

2.    将证书导入操作系统。

3.    通过 SSL/TLS 连接到 Aurora PostgreSQL 兼容版数据库集群。

请参阅以下示例:

psql -h DBInstance.cluster-Account-Number.eu-west-1.rds.amazonaws.com  -p 5432 "dbname=postgres user=postgres sslrootcert=global-bundle.pem sslmode=verify-full"

当您将 rds.force_ssl 设置为 1(开启)时,将修改数据库实例的 pg_hba.conf 文件以支持新的 SSL 配置。您可以使用 pg_hba_file_rules 视图查看 pg_hba.conf 文件的内容摘要。在 rds.force_ssl 设置为 1(开启)之后,pg_hba_file_rules 视图中的类型值将更新为 hostssl。

您可以要求与数据库集群的连接使用 SSL/TLS。要执行此操作,请使用 rds.force_ssl 参数。默认情况下,rds.force_ssl 参数设置为 0,这意味着它已关闭。要开启此参数,请将 rds.force_ssl 设置为 1。这使得 SSL/TLS 成为连接数据库集群的必要条件。

有关更多信息,请参阅使用 SSL/TLS 保护 Aurora PostgreSQL 数据

查看 SSL 连接

要查看 SSL 连接,请运行以下命令:

postgres=> select ssl_is_used();
 ssl_is_used
-------------
 t
(1 row)

postgres=> select ssl_cipher();
         ssl_cipher
-----------------------------
 ECDHE-RSA-AES128-GCM-SHA256
(1 row)

AWS 官方
AWS 官方已更新 3 个月前