我有一个 NodeJS 应用程序,使用 Objection 和 Knex 库连接到 AWS RDS 中的 MySQL 数据库。如果我使用正确的可访问性令牌和凭据设置 knex 文件,并且使用允许从任何地方访问 3306 的流量的入站规则公开访问 RDS,我就可以使用 knex 连接到它。
我意识到任何拥有可访问令牌和密码的人都可以访问数据库。
请问,是否有更安全的方式连接RDS?例如,我可以通过 MySQL 工作台连接到 AWS RDS,方法是使用 PEM 文件连接到已连接到 RDS 数据库的 EC2 实例。对于此连接,RDS 数据库不需要可公开访问,也不需要允许来自任何地方的入站流量。
我尝试过的
设置凭据后,我尝试在没有公共访问权限的情况下进行连接,并且仅允许来自我的 IP 的入站流量。我尝试过不访问酒吧+允许任何地方的流量。并且具有公共访问+仅允许我的IP。
所有这些都没有成功。
只有当我将其公开访问并向所有入站流量开放时,它才起作用。
此外,我尝试查看 Knex 文档,但找不到与 EC2 的连接或使用 PEM 文件。
这是让 Knex 连接到 RDS 最安全的方式吗?就最佳实践而言,这好吗?
这是我的连接对象代码的模板:
{
client: 'mysql2',
connection: {
host: HOST,
user: USERNAME,
password: PASSWORD,
database: DATABASE,
},
migrations: {
tableName: MIGRATIONS_TABLE_NAME,
},
};