mysql - 使用本地客户端连接到 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 的连接不是什么大问题吗?
解决方案
推荐阅读
- excel - 在已由同一函数添加的行下方添加一行
- python - 使用 Python Selenium 查找表的无限嵌套元素
- vba - 访问 VBA me.filter
- python - 用于查找索引之间距离的列表换行
- java - 定期扫描数据库表以查找新行
- java - 在使用 Jackson 进行序列化和反序列化时处理某些字段的不同类型
- ios - UIStackView:方面填充图像压缩问题
- mysql - 如何使 WITH RECURSIVE 查询在较低版本的 MySQL 中可运行?
- java - 如何在 iOS 上使用 appium 查找应用版本
- snaplogic - 如何在 REST Snap 中应用过滤器并对值进行硬编码?