首页 > 解决方案 > 使用本地客户端连接到 VPC 中的 AWS RDS 实例

问题描述

我有一个在 EC2 实例上运行的应用程序,该应用程序将数据存储在 RDS 实例中。所有这些实例都位于 AWS VPC 中,安全组配置为允许它们相互连接。

出于报告目的,我想从我的笔记本电脑(例如使用 SQLAlchemy)连接到 RDS 实例以运行简单查询。每次我尝试使用 EC2 应用程序使用的连接字符串进行连接时,连接都会超时。

对于 Google,可以为此使用 Cloud SQL 代理,但我找不到适用于 AWS 的类似产品。相反,似乎我应该做的是将 Internet 网关附加到 VPC 并配置安全组以允许从我的机器进行连接。然而,除了允许所有入站连接或允许静态 IP。不幸的是,我的笔记本电脑没有静态 IP,而且我不喜欢允许所有入站连接,因为它看起来不安全并且容易受到攻击。我也无法找到一种方法来配置安全组以允许基于 IAM 凭证的连接,例如使用 AWS CLI。由于我将定期生成报告,因此每次我想连接时都涉及更新安全组(即允许我当前的 IP)的解决方案似乎不是最理想的。

我已尝试遵循以下文档,但到目前为止未能成功找到不允许所有连接的解决方案:
允许用户使用 IAM连接到 RDS *
从命令行连接到 RDS 实例
从互联网连接到 VPC 上的 RDS

*我的 RDS 实例配置不允许我启用 IAM 身份验证,我不知道为什么

IAM Database Authentication is not supported for the configuration in the DB Instance db. 
Modify your Db Instance to another instance class and try again. 
(Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination; 
Request ID: a6194fb8-2ab9-4a6a-a2be-63835e6e0184)

有什么我不理解或忽略的吗?由于数据库实例仍受数据库用户凭据保护,因此允许来自所有 IP 的连接不是什么大问题吗?

标签: mysqlamazon-web-servicesamazon-rdsamazon-vpcaws-security-group

解决方案


在此处输入图像描述

根据屏幕截图选择此连接。然后填写所有详细信息,使用您的 nat 实例 .pem 文件进行连接。就像您通过 Nat 网关或 Internet 网关绕过此连接到 VPC。

在 VPC 上安装 VPN 并连接的另一种选择。


推荐阅读