如何从本地低成本访问AWS私有子网中的RDS实例?
私有子网RDS MySQL低成本访问方案
以下是几个比堡垒主机和VPN客户端更经济实用的方案:
利用AWS Session Manager(SSM)端口转发
不需要单独维护付费堡垒主机,可借助AWS免费额度内的t2.microEC2实例(或已有符合条件的EC2),通过SSM建立安全的端口转发:- 确保目标EC2实例已安装SSM Agent,且IAM角色拥有对应端口转发权限(可使用
AmazonSSMFullAccess或更精细的自定义策略) - 在本地终端执行端口转发命令:
aws ssm start-session --target <你的EC2实例ID> \ --document-name AWS-StartPortForwardingSessionToRemoteHost \ --parameters '{"host":["<RDS实例端点>"], "portNumber":["3306"], "localPortNumber":["3306"]}' - 打开MySQL Workbench,连接
localhost:3306即可访问RDS。只要EC2实例在免费额度内,无额外成本,且无需管理SSH密钥,安全性更高。
- 确保目标EC2实例已安装SSM Agent,且IAM角色拥有对应端口转发权限(可使用
使用AWS CloudShell进行临时访问/端口转发
AWS CloudShell是控制台内置的免费在线Shell环境,可直接在控制台中操作:- 打开CloudShell,确保所在区域与RDS一致
- 若要直接在CloudShell中操作RDS,安装MySQL客户端后,用RDS内网端点连接(需配置RDS安全组允许CloudShell所在VPC的CIDR访问)
- 若要本地Workbench连接,可通过CloudShell结合SSM Session Manager转发端口,无需自己部署任何EC2资源,基础使用完全免费。
临时开启公网访问(仅限临时场景)
如果只是偶尔需要访问RDS,可临时开启“公开访问”开关,同时在RDS安全组中仅添加你的本地公网IP(可通过curl ifconfig.me获取)作为允许访问的源。访问完成后立即关闭公网访问并移除安全组规则,这种方式零额外成本,操作最简单,但仅限临时使用,务必注意及时复原保障安全。
内容的提问来源于stack exchange,提问作者Yunus Terzi
相关产品推荐
相关产品推荐

