如何在AWS中的安全组内部配置安全组?

问题描述:

我最近在VPC中对亚马逊AWS安全组进行了一些测试。如何在AWS中的安全组内部配置安全组?

我在sg_office内部有一个LAMP堆栈服务器,并且有对我们的办公室IP/32开放的端口22,80和3306。一切都很好。

我认为你可以将SG B添加到SG A来组织IP。例如,我想创建一个sg_contractors和一个sg_office来组织可以访问单独安全组的远程IP,因为远程承包商的IP很容易发生变化,而我们的办公室IP是静态的。

以下是我遵循的步骤。

  1. 我添加了一个新的sg_contractors安全组,并加入他们的IP/32和入口22,80,和3306,
  2. 回到sg_office并添加入所有的TCP到 “自定义IP” sg_contractors。当我输入sg ...时,它出现在其他安全组的列表中,所以我认为这必须是实现它的方式。

远程用户无法连接。

我再次尝试,

  1. 编辑sg_contractors具有入口ALL TCP设定为0.0.0.0/0
  2. 尽管如此远程用户无法连接。我甚至

    1. 添加入口所有TCP contractors_sg到contractors_sg,作为测试。

    远程用户仍然无法连接到服务器。当然,如果我将远程承包商的IP/32直接放到sg_office中,并为其IP/32重新添加端口22,80和3306,它就可以正常工作,这只会使sg_office规则变得更加混乱和混乱,因为无法标记任何IP,并且每个承包商都必须有多个规则。

    那么我错过了什么,你如何做这项工作?

开始=>
+0

同时使用多个安全组,一个用于办公室员工,一个用于承包商。 – jarmod

+0

对,我试过了,出于某种原因,远程承包商无法连接,期间。它只有在我将所有IP添加到单个SG后才能工作。 – phpguru

您想要将两个安全组应用于相同的实例。

当存在到Amazon EC2实例的传入连接时,将检查与该实例关联的所有安全组。如果任何规则允许入站访问,则允许连接。

这与一个涉及另一个的安全组不同,它用于连接两个实例。例如,如果您希望允许实例A与实例B通信,那么您将为这两个实例(例如SG-A和SG-B)分配安全组。然后,您将配置SG-B以允许从“SG-A”的所需协议进行入站访问。这通常是为了允许Web服务器与应用服务器交谈。

在您的情况下,只有一个实例,您应该将sg_officesg_contractors都关联到同一个实例。