You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:12:48