SSH'ing到AWS EC2实例位于专用子网的VPC(SSH'ing into A

2019-09-29 09:52发布

我在这个问题了几个小时一直在进行,也许它不是可能的,也许是。

我在AWS VPC的,与一对夫妇EC2实例和Lambda实例。

截至目前,该拉姆达可以调用,SSH等的EC2服务器没有问题。

我的lambda表达式使用的是安全组只有HTTP,在“出站” HTTPS和SSH。

我的EC2默认安全组只接受22入站(从我LAMBDA安全组,我的办公室IP)。

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

如果我对我的私人子网创建它,我的lambda表达式可以ssh,但我不能...

难道我真的有一个NAT服务器才能实现这一目标?

TL:DR; 只有我的办公室和我的lambda表达式应该可以访问我的EC2实例。

Answer 1:

对于SSH访问考虑EC2实例第一选择应该是AWS系统管理器会话管理器shell访问EC2实例 。 这是一个潜在的大问题。 没有更多的堡垒,没有更多的防火墙规则允许入站端口22,你基本上是在浏览器中运行的SSH会话,它可以针对所有EC2实例,无论公共/私有IP或子网的。 EC2实例必须运行到SSM代理的最新版本,并且必须已经用适当的IAM角色(包括AmazonEC2RoleForSSM主要政策)推出。

要考虑的第二个选项是AWS系统管理器运行命令 ,它允许你在你的EC2实例远程运行命令。 它不是像互动SSH,但如果你只是想运行的脚本序列,然后这是非常好的。 同样,对象必须是运行SSM代理,并有适当的IAM策略,此选项可避免通过堡垒主机需要隧道。

最后,如果你真的必须在专用子网从你的办公室的笔记本电脑连到了一EC2实例,你需要几件事情:

  1. IGW和NAT的VPC
  2. 堡垒主机与VPC内的公共子网的公共IP
  3. 在堡垒安全组让您的笔记本电脑的入站SSH
  4. 从专用子网到NAT的缺省路由
  5. 在私人EC2实例安全组允许呼入的SSH来自堡垒

然后你通过堡垒主机有隧道。 见安全地连接到Linux实例的私人亚马逊VPC运行更多。



Answer 2:

您可以参考这个: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html你将不得不使用NAT网关的专用子网访问任何东西。



文章来源: SSH'ing into AWS EC2 Instance located in Private Subnet in a VPC