是否可以将 AWS RDS Postgres SSL 连接与 DNS 别名而不是 AWS 端点一起使用?

Posted

技术标签:

【中文标题】是否可以将 AWS RDS Postgres SSL 连接与 DNS 别名而不是 AWS 端点一起使用?【英文标题】:Is it possible to use AWS RDS Postgres SSL connections with DNS Aliases rather than AWS Endpoint? 【发布时间】:2020-02-14 16:13:25 【问题描述】:

RDS Postgres 实例具有自动生成的 SSL 证书,该证书使用端点名称作为证书公用名。使用该自动生成的证书创建与实例的 SSL 连接非常简单。

是否可以更新现有证书,或生成额外的证书,以便在初始化 SSL 连接时可以为端点使用域别名,而不是端点名称?

例如我有一个域别名设置为 testdb.mydomain.com CNAME testd.abcd1234hj1.us-east-1.rds.amazonaws.com 并希望能够初始化与 testdb.mydomain.com 的 SSL 连接

我为我的 AWS RDS Postgres 实例端点使用域名别名,例如testdb.mydomain.com CNAME testdb.abcd1234asds.us-east-1.rds.amazonaws.com

【问题讨论】:

【参考方案1】:

是否可以更新现有证书,或生成额外的证书,以便在初始化 SSL 连接时可以为端点使用域别名,而不是端点名称?

很遗憾,RDS 目前不支持此功能。无法更新 RDS 以使用与您的 CNAME 匹配的自定义证书。如果您使用的应用程序框架使您能够编写代码来处理认证验证错误,那么唯一可能做到这一点的方法是在客户端。在这种情况下,您可以实现允许忽略特定 RDS 端点的证书验证错误而忽略任何其他端点的代码。

【讨论】:

【参考方案2】:

即使不能直接使用 DNS 别名(如 @Ashaman Kingpin 所述),我们仍然可以避免将 CNAME 传递给任何需要它的资源。

假设一个 lambda 函数需要连接到数据库,我们可以传递 DNS 别名,解析 lambda 中的 CNAME,并使用生成的 CNAME 通过 aws 证书连接到 RDS。

【讨论】:

这是一个有趣的解决方案

以上是关于是否可以将 AWS RDS Postgres SSL 连接与 DNS 别名而不是 AWS 端点一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

AWS postgres RDS 读取复制如何处理架构切换?

AWS Lambda NodeJS 连接到 RDS Postgres 数据库

在另一个 AWS 账户中创建 RDS/Postgres 副本?

如何从 aws rds 导出 postgres 数据库

如何仅提取 AWS RDS(Postgres 数据库)中的更改数据(CDC)并将更改数据转储到另一个 RDS postgres 实例?

PSQLException:此连接已关闭 - Spring Boot + AWS RDS + Postgres