我有两台EC2机器,每台机器都有自己的安全组(SG)。一个是具有弹性IP的EC2实例。另一个是Elastic Beanstalk的一部分。我使用弹性(静态)IP地址将我的Elastic Beanstalk机器SSH连接到EC2机器。
我更改EC2机器的SG以允许来自Elastic Beanstalk的SG的端口22。 SSH无法连接。
我更改EC2机器的SG以允许端口22来自专用VPC范围(172.31.0.0)。 SSH无法连接。
这是因为我通过公共IP访问EC2吗?
我更改EC2机器的SG以允许Elastic Beanstalk的公共IP的端口22。 SSH连接!
如何为我的EC2机器设置安全组,允许从我的Elastic Beanstalk实例进行SSH访问,而不依赖于公共IP? (因为它们在使用Beanstalk时会发生变化,我不想继续更新安全组)。
答案 0 :(得分:0)
我回答了自己的问题!
问题是在建立SSH连接时使用EC2实例的公共(弹性)IP。基于this StackoverFlow answer,当使用公共IP地址时,安全组也需要公共IP地址。
更改对公共DNS(包含弹性/静态IP地址ec2-XXX-XX-XXX-XXX.compute-1.amazonaws.com
的访问权限,因此不应对我进行更改)允许EC2解析内部IP地址,因此安全组规则适用于另一个安全组!