是否可以将 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 数据库)中的更改数据(CDC)并将更改数据转储到另一个 RDS postgres 实例?