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

问题描述 投票:1回答:2

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

我在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实例。

amazon-web-services amazon-ec2 ssh
2个回答
6
投票

要考虑对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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.