如何仅向 Amazon RDS 开放 MySQL 端口进行复制?

如何仅向 Amazon RDS 开放 MySQL 端口进行复制?

我在专用服务器上有一个 MySQL 数据库,我想将其复制到 Amazon RDS 以便始终拥有最新的备份。

为此,Amazon RDS 需要能够连接到我的主 MySQL 服务器。

我不想3306向全世界开放 MySQL 端口,因为尽管 MySQL 有自己的权限,但我认为如果 MySQL 中发现安全问题,则会有额外的安全风险。

因此,我想向 iptables 添加一条规则以允许来自 的所有连接*.rds.amazonaws.com。但据我了解,即使 iptables 允许指定主机名而不是 IP 地址,它也是在创建规则时解析的,而不是在检查数据包时解析的。

而且由于 RDS 的设计方式,RDS 实例主机名背后的 IP 地址可能会在其生命周期内发生变化,所以这不是一个好的解决方案。

我还有什么其他选择可以只向 RDS 开放我的 MySQL 服务器?

答案1

以下是 Unix 和 Linux Stack Exchange 问题的链接:UFW:仅允许来自具有动态 IP 地址的域的流量

TCP/IP 级别的阻止可能不适用于动态 IP 地址。虽然接受的答案提到了脚本,但它可能容易出错。AWS 确实发布了IP 范围列表,但这种情况可能会随着时间而改变。

不幸的是,你最好的选择可能是在 MySQL 中进行用户身份验证。你可以通过用户和主机名来限制权限:指定帐户名称

答案2

我认为最正确的做法是使用VPC 安全组。您可以编写一个安全组,以仅允许来自具有该安全组的其他实例在端口 3306 上进行 TCP 流量:

在此处输入图片描述

如果您有一个实际上想要公开访问的实例,则添加另一个安全组,将“0.0.0.0/0”列为端口 3306 的源。这样,两个规则就会重叠。

相关内容