这种情况:
- 实例
X
能够连接到 TCP 端口27017
上的实例Y
(EC2 安全组允许) -
X
有蒙戈壳 -
Y
运行MongoDB,接受端口27017
上X
的连接 - 从
X
,使用 mongo shell 连接到Y
上的数据库实例 - 从这个 mongo shell 会话中
X
,从Y
查询并插入到Y
。一切都很成功。 - 更改
Y
安全组:删除#1中提到的端口27017
规则 -
X
仍然可以从/插入到托管在Y
上的数据库。这是意料之外的。 - 在
X
上退出蒙戈壳会话 - 再次尝试步骤 4 并失败。这是正常和意料之中的。
预计 EC2 网络防火墙将终止违反规则(安全组策略)的连接。
你能解释一下上面的#7是如何发生的吗?如何避免这种情况(所以X
当时无法对Y
做任何事情)?
谢谢。
预计 EC2 网络防火墙将终止连接 违反规则的内容
你在这里做一个假设。这可能是您对它应该如何工作的期望,但是在官方AWS文档中备份在哪里?我建议阅读文档,而不是假设这将如何工作。
从文档中:
跟踪的现有流量可能不会中断 删除启用该流的安全组规则时。 相反,当流被您或其他人停止时,流就会中断 主机至少几分钟(对于已建立的 TCP 最多 5 天) 连接)。对于 UDP,这可能需要终止对 流的远程端。立即出现未跟踪的流量 如果删除或修改启用流的规则,则中断。 例如,如果您删除允许所有入站 SSH 流量的规则 (0.0.0.0/0) 到实例,然后您现有的 SSH 连接到 实例将立即删除。
如果要确保流量在以下情况下立即中断 删除安全组规则,您可以使用网络ACL 子网 — 网络ACL是无状态的,因此不会自动 允许响应流量。有关更多信息,请参阅 亚马逊 VPC 用户指南。