为什么 AWS EC2 RDP 会话在从安全组中删除 RDP 规则后继续处于活动状态?

Why do AWS EC2 RDP sessions continue to be active after removing the RDP rule from security group?

我有一个 EC2 实例,其安全组只允许 RDP。是安全组的唯一规则。

如果我执行以下操作...

  1. 开始与 EC2 实例的 RDP 会话。
  2. 从安全组中删除 RDP 规则,使安全组没有任何入口规则。

...即使附加的安全组中没有 Ingress 规则,现有 RDP 会话仍会无限期地正常工作。

我的预期是,一旦部署了安全组中的更改,RDP 会话就会被切断。

为什么会这样?我首先想到的原因是因为安全组的出口规则是0.0.0.0/0,但我也尝试将出口IP更改为1.2.3.4/32(即随机IP)并且现有的RDP会话仍然存在.

总而言之,当我删除 RDP 规则时,似乎只有 连接被阻止,但现有连接继续正常工作。

听起来 RDP 会话继续 运行 在主机上,即使客户端停止与其通信也是如此。这可能很有用,因为如果客户退出,事情就会继续发生。

您似乎可以使用 Session Time Limits | Microsoft Docs 在组策略设置中为空闲 RDP 会话配置超时:

Policy settings in this node control time limits for Remote Desktop Services sessions on a Remote Desktop Session Host server.

因为安全组是一个状态防火墙。以入站请求发起的流量不受出站规则的限制。我怀疑规则在传输开始时被检查一次,然后允许响应流量而无需额外的规则检查。

访问控制列表是无状态的。我没有测试,但我希望从 ACL 中删除规则会立即减少响应流量。为了工作,无状态防火墙必须检查每个数据包的入站和出站规则。