在没有 SSH 隧道的情况下直接访问私有子网中的数据库
Direct access a database in a private subnet without SSH tunnel
我在私有子网中设置了一个数据库(使用 RDS),并在 public 子网中在它前面设置了一个堡垒。从本地笔记本电脑访问此数据库的传统方法是在 bastion/jumpbox 上设置 ssh 隧道并将数据库端口映射到本地。但这不方便开发,因为我们需要在每次连接之前建立隧道。我正在寻找一种无需先设置 ssh 隧道即可访问此数据库的方法。我见过一个案例,本地笔记本电脑直接使用那个堡垒的ip和它的3306端口连接到后面的数据库。我不知道它是怎么做到的。
顺便说一句,在那种情况下,我看到他们不使用端口转发,因为我在堡垒的 iptable 中没有发现任何特殊规则。
有几种方法可以完成您想要做的事情,但如果不完全理解动机,就很难说哪种是 "Best Solution"。
SSH 隧道是在 public 堡垒主机后面的私有子网中访问资源的事实标准。我同意 SSH 隧道不是很方便,幸运的是,一些 ide 和许多应用程序都可以使用,一旦配置好,只需单击一个按钮即可。
或者,您可以设置一个客户端到站点 VPN 到您的 EC2 环境,这也将提供ide对私有子网的访问。
我会警告您所做的任何以裸体方式(例如使用 IP 表、Nginx 等)将数据库集群代理或暴露给外界的行为ide 应该避免ided .如果您的目标是这样,那么正确的解决方案是只公开数据库实例 publicly。但请注意,任何这些不使用隧道(例如 VPN 或 SSH 隧道)的解决方案都将是一种听觉发现,并向各种攻击媒介开放您的数据库。为了缓解,建议您的安全组应将端口 3306 限制为您公司网络的 public IP。
我在私有子网中设置了一个数据库(使用 RDS),并在 public 子网中在它前面设置了一个堡垒。从本地笔记本电脑访问此数据库的传统方法是在 bastion/jumpbox 上设置 ssh 隧道并将数据库端口映射到本地。但这不方便开发,因为我们需要在每次连接之前建立隧道。我正在寻找一种无需先设置 ssh 隧道即可访问此数据库的方法。我见过一个案例,本地笔记本电脑直接使用那个堡垒的ip和它的3306端口连接到后面的数据库。我不知道它是怎么做到的。
顺便说一句,在那种情况下,我看到他们不使用端口转发,因为我在堡垒的 iptable 中没有发现任何特殊规则。
有几种方法可以完成您想要做的事情,但如果不完全理解动机,就很难说哪种是 "Best Solution"。
SSH 隧道是在 public 堡垒主机后面的私有子网中访问资源的事实标准。我同意 SSH 隧道不是很方便,幸运的是,一些 ide 和许多应用程序都可以使用,一旦配置好,只需单击一个按钮即可。
或者,您可以设置一个客户端到站点 VPN 到您的 EC2 环境,这也将提供ide对私有子网的访问。
我会警告您所做的任何以裸体方式(例如使用 IP 表、Nginx 等)将数据库集群代理或暴露给外界的行为ide 应该避免ided .如果您的目标是这样,那么正确的解决方案是只公开数据库实例 publicly。但请注意,任何这些不使用隧道(例如 VPN 或 SSH 隧道)的解决方案都将是一种听觉发现,并向各种攻击媒介开放您的数据库。为了缓解,建议您的安全组应将端口 3306 限制为您公司网络的 public IP。