如何通过Knex安全连接AWS RDS数据库?
如何安全连接AWS RDS MySQL到Node.js(Objection/Knex)应用?
我有一个基于Node.js的应用,使用Objection和Knex库,需要连接AWS RDS上的MySQL数据库。目前只有在RDS设置为公开可访问,且安全组入站规则允许所有来源访问3306端口时,Knex才能成功建立连接。但我意识到这种配置风险很高——任何持有数据库凭证和密码的人都能访问数据库。
我想知道有没有更安全的连接方式?比如能不能通过PEM文件连接到EC2实例,再通过EC2访问RDS?这样RDS就不需要公开可访问,也不用开放所有入站流量了。
已尝试的方案
配置好凭证后,我试过以下几种组合,但都连接失败:
- 关闭RDS公网访问 + 安全组仅允许我的IP访问3306端口
- 关闭RDS公网访问 + 安全组允许所有来源访问3306端口
- 开启RDS公网访问 + 安全组仅允许我的IP访问3306端口
只有开启RDS公网访问 + 安全组允许所有来源访问3306端口时,连接才能成功。
另外我查了Knex的官方文档,没找到关于通过EC2跳板或使用PEM文件连接的相关说明。想请教:当前这种连接方式是不是最安全的?是否符合AWS数据库连接的最佳实践?
以下是我的Knex连接配置模板:
{ "client": "mysql2", "connection": { "host": "HOST", "user": "USERNAME", "password": "PASSWORD", "database": "DATABASE" }, "migrations": { "tableName": "MIGRATIONS_TABLE_NAME" } }
内容的提问来源于stack exchange,提问作者metalwing1212
相关产品推荐
相关产品推荐

