如何在我的 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 模式有:

  • verify-full
  • verify-ca
  • require
  • prefer
  • allow
  • disable

有关如何为您的用例选择正确 SSL 模式的详细信息,请参阅 PostgreSQL 网站上的以不同模式提供的保护

解决方法

Amazon Relational Database Service(Amazon RDS)会为您的集群创建 SSL 或 TLS 认证。此认证创建过程会在创建集群时进行。有关详细信息,请参阅 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。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)

注意: Amazon RDS 实例 SSL 是单向 SSL。这意味着客户端可以验证服务器的身份。

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