我正在尝试在AWS中设置堡垒主机,以便对私有子网中的RDS实例执行管理选项。我正在遵循官方文档(https://docs.aws.amazon.com/quickstart/latest/linux-bastion/step1.html)中的指示,但是目前尚不清楚该堡垒如何知道要连接到哪个RDS实例。我如何确保它可以与预期的RDS“对话”? (据我了解,密钥对只是我可以随时创建并输入以连接到堡垒本身的东西,而不是RDS,否则我错了吗?)
答案 0 :(得分:2)
您链接的文档使用AWS CloudFormation堆栈来部署堡垒。我不确定它使用的是什么配置,所以我的回答将是通用的,而不是适用于这种特定情况。
正常配置是:
有许多方法可以通过堡垒连接到 。这是我用的一个:
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中,而不是网络的受保护部分。