我在专用服务器上有一个MySQL数据库,我想要复制到Amazon RDS以始终拥有最新的备份。
为此,Amazon RDS需要能够连接到我的主MySQL服务器。
我不想将MySQL端口3306打开到全世界,因为即使MySQL有自己的权限,如果在MySQL中发现安全问题,我认为这是额外的安全风险。
所以我想添加一个规则到iptables允许来自*.rds.amazonaws.com所有连接。 但据我所知,即使iptables允许指定一个主机名而不是一个IP地址,它会在创build规则时解决,而不是在检查数据包时解决。
而由于RDS的devise方式,RDS实例主机名背后的IP地址可能会在其生命周期中发生变化,所以这不是一个好的解决scheme。
我有什么替代品只能打开我的MySQL服务器到RDS?
这里是一个链接到一个Unix和Linux堆栈交换问题: UFW:只允许来自dynamicIP地址域的stream量
对于dynamicIP地址,TCP / IP级别阻止可能无法正常工作。 尽pipe接受的答案提到了一个脚本,但可能会出错。 AWS确实发布了IP范围列表 ,但是这可能会随着时间而改变。
不幸的是,你最好的select可能是MySQL中的用户authentication。 您可以通过用户和主机名限制权限: 指定帐户名称 。
我相信最正确的做法是使用VPC安全组 。 您可以编写一个安全组,以仅允许具有该安全组的其他实例的端口3306上的TCP通信:
如果您有一个实际需要公开访问的实例,请添加另一个安全组,将“0.0.0.0/0”列为端口3306的源。这样,两个规则将重叠。