【问题标题】:Accessing RDS in private subnet with port forwarding via Terminal通过终端通过端口转发访问私有子网中的 RDS
【发布时间】:2018-08-25 12:56:16
【问题描述】:

我想通过 Bastion 主机在私有子网中建立与我的 rds 的连接。我可以毫无问题地通过 SSH 访问堡垒主机,并在 RDS DB 所在的私有子网中打开了安全组,以接收来自堡垒主机安全组的传入流量。 现在有 2 种可能连接到 RDS 实例。 解决方案1.在堡垒主机上安装MySQL命令行工具,并使用它来连接RDS DB 解决方案 2. 从我的本地计算机通过端口转发访问 RDS。

我可以通过 Bastion Host 的 MySQL 命令进行连接,但很难进行端口转发。当我使用时

ssh -i ecs_key.pem  -NL 3007:mydb3.co2qgzotzpzu.eu-west-1.rds.amazonaws.com:3306 ubuntu@ec2-56-18-172-97.eu-west-1.compute.amazonaws.com

我最终也在堡垒主机上。任何人都可以向我解释这两种解决方案之间是否存在差异,或者我应该坚持使用适合我的解决方案 1。

谢天谢地

【问题讨论】:

    标签: amazon-web-services


    【解决方案1】:

    您需要连接到 localhost:3007,而不是 9000

    【讨论】:

    • 你是这个意思吗:mysql -h localhost P 3007 -u RDS_USER -p
    【解决方案2】:

    两种解决方案的区别在于,在解决方案1中,你必须在堡垒上安装mysql命令行工具,而使用隧道(解决方案2)你可以使用计算机上的工具通过隧道连接。

    我不想让堡垒主机与我在本地已有的工具混在一起。堡垒主机的最佳实践是通过仅安装最小的 sshd 配置来最小化攻击面以允许您设置隧道,而不是安装一堆开发工具。

    同样,如果您想安装像 Workbench 或 Dbeaver 这样的 SQL Studio 工具,您需要在本地使用它,并通过隧道连接。

    您的隧道设置看起来正确。坚持下去。

    试试:

    'mysql --host=127.0.0.1 --port=3007 --user=myname --password'

    注意 当主机参数为 localhost 时,MySQL 使用套接字并忽略端口设置。请改用 127.0.0.1。看 https://dev.mysql.com/doc/refman/8.0/en/connecting.html

    【讨论】:

    • 谢谢;但是当我尝试ssh -i ar_ecs_key.pem -NL 3007:mydb3.co2qgzotzpzu.eu-west-1.rds.amazonaws.com:3306 ubuntu@ec2-56-18-172-97.eu-west-1.compute.amazonaws.com 时,我什么也没有得到,光标只是停留......什么都没有发生。我想这不正常……
    • 我需要在 rds 和堡垒主机上打开哪些端口。到目前为止,我只在堡垒主机上打开了端口 22,并允许来自 rds 安全组中堡垒主机安全组的流量。但这似乎不起作用...
    猜你喜欢
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 2018-01-25
    • 1970-01-01
    相关资源
    最近更新 更多