通过PostgreSQL客户端连接实例的方式有SSL连接。SSL连接通过了加密功能,具有更高的安全性。
创建RDS for PostgreSQL实例时默认开启SSL,实例创建完成后,不支持关闭。
步骤一:创建ECS
1. 登录管理控制台,查看是否有弹性云主机。
注意
RDS for PostgreSQL支持以下两种常用的客户端安装方式:
下载PostgreSQL客户端安装包进行安装:PostgreSQL 15及以下版本推荐使用该方式,同时对ECS的镜像也有要求,详见PostgreSQL社区指导。
下载源码进行安装:该方式对PostgreSQL版本及ECS的镜像没有要求。
− 有Linux ECS,执行2。
− 没有Linux ECS,需要购买ECS,购买时选择Linux操作系统,例如CentOS 7。
由于需要在ECS下载PostgreSQL客户端,因此需要为ECS绑定弹性公网IP(EIP),并且选择与RDS for PostgreSQL实例相同的区域、VPC和安全组,便于RDS for PostgreSQL和ECS网络互通。
购买Linux弹性云主机请参考《弹性云主机用户指南》中“购买弹性云主机”章节。
2. 分别查看ECS的区域和VPC,以及RDS for PostgreSQL实例的区域和VPC。确认ECS实例与RDS for PostgreSQL实例处于同一区域、同一VPC内。
− 如果不在同一区域,请重新购买ECS实例。不同区域的云服务之间内网互不相通,无法访问实例。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
− 如果不在同一VPC,可以修改ECS的VPC,请参见《弹性云主机用户指南》中“切换虚拟私有云”的内容。
前提条件
1. 登录弹性云主机。
− 通过弹性云主机连接关系型数据库实例,需要具备以下条件。
该弹性云主机与目标实例必须处于同一VPC内。
该弹性云主机必须处于目标实例所属安全组允许访问的范围内。
如果目标实例所属安全组为(default),则无需设置安全组规则。
如果目标实例所属安全组非默认安全组,请查看安全组规则是否允许该弹性云主机访问。具体操作请参考设置安全组规则。
如果安全组规则允许弹性云主机访问,即可连接实例。
如果安全组规则不允许弹性云主机访问,则需添加安全组规则。该弹性云主机必须处于目标实例所属安全组允许访问的范围内。
2. 使用客户端连接实例。
SSL连接
步骤 1 登录管理控制台。
步骤 2 单击管理控制台左上角的 ,选择区域。
步骤 3 选择“数据库 > 关系型数据库”。进入关系型数据库信息页面。
步骤 4 单击实例名称进入“基本信息”页面。
步骤 5 单击“SSL”处的 ,下载根证书或捆绑包。
步骤 6 将根证书上传至需连接RDS for PostgreSQL实例的弹性云主机,或保存到可访问关系型数据库实例的设备。
步骤 7 连接关系型数据库实例。以Linux系统为例,执行如下命令。
psql --no-readline -h <host> -p <port> "dbname=<database> user=<user> sslmode=verify-ca sslrootcert=<ca-file-directory>"
表 参数说明
参数 | 说明 |
---|---|
<host> | 主机IP,在“实例管理”页面单击实例名称,进入“基本信息”页面。“连接信息”模块的“内网地址”(通过弹性云主机访问)。 |
<port> | 端口,默认5432,当前端口,即在“实例管理”页面单击实例名称,进入“基本信息”页面,“连接信息”模块的“数据库端口”。 |
<database> | 需要连接的数据库名,默认管理数据库是postgres。 |
<user> | 用户名,即关系型数据库账号,默认管理员账号为root。 |
<ca-file-directory> | SSL连接CA证书路径,该文件需放在执行该命令的路径下。 |
sslmode | SSL连接模式,设置为“verify-ca”,通过检查证书链(Certificate Chain,以下简称CA)来验证服务是否可信任。 |
出现如下提示时,输入数据库账号对应的密码:
Password:
使用root用户SSL连接postgres数据库实例,示例如下:
psql --no-readline -h 192.168.0.44 -p 5432 "dbname=postgres user=root sslmode=verify-ca sslrootcert=/root/ca.pem"
Password:
步骤 8 登录数据库后,出现如下信息,表示通过SSL连接成功。
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
----结束