EC2 安全组中的禁止规则不会影响已建立的 MongoDB 连接
Posted
技术标签:
【中文标题】EC2 安全组中的禁止规则不会影响已建立的 MongoDB 连接【英文标题】:Disallowing rule in EC2 security group is not affecting already-established MongoDB connections 【发布时间】:2016-07-05 06:40:00 【问题描述】:是这样的:
-
实例
X
能够在TCP 端口27017
上连接到实例Y
(EC2 安全组允许)
X
有 mongo shell
Y
正在运行 MongoDB,接受来自端口 27017
上的 X
的连接
从X
,使用mongo shell 连接到Y
上的数据库实例
在X
上的这个mongo shell 会话中,从Y
查询并插入到Y
。一切顺利。
更改Y
的安全组:去掉#1中提到的端口27017
的规则
X
仍然可以查询/插入托管在Y
上的数据库。这不是预期的。
在X
上退出 mongo shell 会话
再次尝试步骤 4 并失败。这是正常的,也是意料之中的。
预计 EC2 网络防火墙将终止违反规则(安全组策略)的连接。
你能解释一下上面的#7是怎么发生的吗?以及如何避免这种情况(所以当时X
无法对Y
做任何事情)?
谢谢。
【问题讨论】:
【参考方案1】:预计 EC2 网络防火墙将终止连接 违反规定的
你在这里做了一个假设。这可能是您对它应该如何工作的期望,但是官方 AWS 文档中的哪个地方支持呢?我建议阅读文档,而不是对它的工作原理做出假设。
来自the documentation:
跟踪的现有流量不得中断 当您删除启用该流的安全组规则时。 相反,当您或其他人停止时,流程会中断 主机至少几分钟(对于已建立的 TCP,最多 5 天) 连接)。对于 UDP,这可能需要在 流的远端。未跟踪的流量立即出现 如果启用流的规则被删除或修改,则中断。 例如,如果您删除允许所有入站 SSH 流量的规则 (0.0.0.0/0) 到实例,然后您现有的 SSH 连接到 实例被立即删除。
如果您想确保在您访问时立即中断交通 删除安全组规则,您可以使用网络 ACL 为您的 子网 — 网络 ACL 是无状态的,因此不会自动 允许响应流量。有关详细信息,请参阅网络 ACL Amazon VPC 用户指南。
【讨论】:
感谢 Mark,您编辑标签并提供参考!我应该深入研究 AWS 文档 :)以上是关于EC2 安全组中的禁止规则不会影响已建立的 MongoDB 连接的主要内容,如果未能解决你的问题,请参考以下文章