我有两种实例:服务器和工作者。
我有两个安全组 - server_security_group 和 worker_security_group
服务器属于 server_security_group,工作者属于 worker_security_group
在 server_security_group 中,我设置了一条入站规则,以允许端口 8000 上的 TCP 到 worker_security_group。 (安全组似乎理解了这一点,因为 sg 的名称出现在入站规则中。)
然而,工作人员无法访问服务器上的8000端口。
如果我向 server_security_group 添加一条入站规则,以允许 8000 上的 TCP 专门指向一个工作人员的 IP 地址,那么该工作人员就可以访问。
我做错了什么吗?谢谢。
答案1
如果你想引用worker_security_group
来自server_security_group
你必须确保工人 使用私有 IP 地址当他们与服务员交谈时。
民众和弹性 IP(例如 52.xxx 或 13.xxx 或 3.xxx 或类似的)不携带安全组信息,只有私有 IP 才携带。
例如:
- 服务器有私有 IP 172.16.1.2 和公共 IP 52.12.34.56
- 工作人员拥有私有 IP 172.16.2.3 和公共 IP 13.14.15.16
通过您的安全组设置,您可以从服务器 SG 引用工作器 SG,工作器可以连接到服务器的 172.16.1.2,但不能连接到 52.12.34.56。
希望这是有意义的:)
答案2
欢迎来到 ServerFault!
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
它与规则源或目标组中指定的 IP 地址无关,它影响实例:
当您将安全组指定为规则的源或目标时,该规则将影响与该安全组关联的所有实例。根据与源安全组关联的实例的私有 IP 地址(而不是公有 IP 或弹性 IP 地址)允许传入流量。有关 IP 地址的更多信息,请参阅 Amazon EC2 实例 IP 寻址。如果您的安全组规则引用对等 VPC 中的安全组,并且引用的安全组或 VPC 对等连接被删除,则该规则将被标记为过时。有关更多信息,请参阅 Amazon VPC 对等指南中的使用过时的安全组规则。