堡垒如何知道在AWS中要连接到哪个rds实例

时间:2020-02-15 18:56:25

标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk amazon-rds

我正在尝试在AWS中设置堡垒主机,以便对私有子网中的RDS实例执行管理选项。我正在遵循官方文档(https://docs.aws.amazon.com/quickstart/latest/linux-bastion/step1.html)中的指示,但是目前尚不清楚该堡垒如何知道要连接到哪个RDS实例。我如何确保它可以与预期的RDS“对话”? (据我了解,密钥对只是我可以随时创建并输入以连接到堡垒本身的东西,而不是RDS,否则我错了吗?)

1 个答案:

答案 0 :(得分:2)

您链接的文档使用AWS CloudFormation堆栈来部署堡垒。我不确定它使用的是什么配置,所以我的回答将是通用的,而不是适用于这种特定情况。

正常配置是:

  • 专用子网中的数据库
  • 公共子网中的堡垒服务器(EC2实例)
  • 与堡垒建立连接,然后允许与数据库的连接

有许多方法可以通过堡垒连接到 。这是我用的一个:

ssh -i key.pem ec2-user@BASTION-IP -L 3306:DATABASE-DNS-NAME:3306

这告诉SSH连接通过SSH连接转发发送到我的本地端口3306(第一个数字)的所有流量,然后将其发送到DATABASE-DNS-NAME:3306(数据库服务器)。来自数据库的任何响应都将以相同的方式返回。

然后,当我希望从计算机中引用数据库时,我引用:

localhost:3306

似乎该数据库位于我自己的计算机上,但实际上是通过SSH将流量发送到堡垒,然后再发送到数据库。

有一些更新更好的转发方式,其他人可能(希望)添加为评论或其他答案,但这是我通过堡垒连接的方式。

有趣的事实: 堡垒是伸出的城堡墙的一部分,允许防御者向试图爬墙的攻击者射箭。以类似的方式,堡垒服务器将伸出到Internet中,而不是网络的受保护部分。