我想使用安全套接字层(SSL)连接来连接到 Amazon Aurora PostgreSQL 兼容版数据库集群。
简短描述
您可以使用 SSL 或传输层安全性协议(TLS)来加密应用程序与 Aurora PostgreSQL 兼容版数据库集群的连接。SSL 和 TLS 连接可以为您的集群提供单层安全保护,并对在客户端和集群之间移动的数据进行加密。有关更多信息,请参阅使用 SSL/TLS 加密与数据库集群的连接。
为了安全起见,在建立连接之前,您必须在客户端和服务器上配置 SSL 连接。如果服务器上未配置 SSL,则客户端可能会发送密码等敏感信息。有关创建受 SSL 保护的连接的更多信息,请参阅 PostgreSQL 文档中的 SSL 支持部分。
PostgreSQL 的 SSL 模式包括:
有关为使用案例选择正确的 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)