SSH到位于VPC中的私有子网中的AWS EC2实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH到位于VPC中的私有子网中的AWS EC2实例相关的知识,希望对你有一定的参考价值。

我一直在解决这个问题几个小时,也许它不可能,也许它是。

我在AWS中有一个VPC,有几个EC2实例和Lambda实例。

截至目前,lambda可以调用,ssh等等到EC2服务器没有问题。

我的lambdas在“Outbound”中使用的安全组只有HTTP,HTTPS和SSH。

我的ec2默认安全组只接受22个入站(来自我的Lambda安全组,和我的办公室IP)。

如果我在公共子网上创建ec2实例,我和我的lambda函数都可以通过ssh访问它。

如果我在我的PRIVATE子网上创建它,我的lambdas可以ssh但我不能...

我真的必须拥有NAT SERVER才能实现这一目标吗?

TL:DR;只有我的办公室和我的lambdas才能访问我的ec2实例。

答案

要考虑对EC2实例进行SSH访问的第一个选项应该是AWS Systems Manager Session Manager for Shell Access to EC2 Instances。这可能是一件大事。没有更多的堡垒,没有更多的防火墙规则允许入站端口22.您基本上在浏览器中运行SSH会话,它可以针对所有EC2实例,无论公共/私有IP或子网。 EC2实例必须运行SSM代理的最新版本,并且必须已使用适当的IAM角色启动(包括来自AmazonEC2RoleForSSM的密钥策略)。

要考虑的第二个选项是AWS Systems Manager Run Command,它允许您在EC2实例上远程运行命令。它不像SSH那样具有交互性,但如果你只想运行一系列脚本,那就非常好了。同样,实例必须运行SSM代理并具有适当的IAM策略,并且此选项避免了通过堡垒主机的隧道。

最后,如果你真的必须从办公室笔记本电脑SSH到私有子网中的EC2实例,你需要做一些事情:

  1. VPC中的IGW和NAT
  2. 堡垒主机,在VPC的公有子网中具有公共IP
  3. 堡垒上的安全组允许从您的笔记本电脑进行入站SSH
  4. 从私有子网到NAT的默认路由
  5. 私有EC2实例上的安全组,允许来自堡垒的入站SSH

然后你必须穿过堡垒主机。有关更多信息,请参阅Securely Connect to Linux Instances Running in a Private Amazon VPC

另一答案

您可以参考:https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html您必须使用NAT网关访问私有子网中的任何内容。

以上是关于SSH到位于VPC中的私有子网中的AWS EC2实例的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有 Terraform 的 AWS VPC 中的两个子网之间进行路由?

AWS 如何从私有子网中的 EC2 实例打开网站

如何将面向公众的负载均衡器连接到私有 VPC 中的 EC2 实例

如何使用 mySQL 工作台连接到 AWS 私有子网 VPC 中的 RDS

SSH隧道通过Ubuntu堡垒到私有子网中的实例

使用knife ec2插件在VPC私有子网中创建VM