实现安全组内网络隔离

来源:互联网 发布:办公室网络兼职 编辑:程序博客网 时间:2024/05/22 06:51

原文地址

背景介绍

安全组默认的网络连通策略是:同一安全组内的实例之间网络互通,不同安全组的实例之间默认内网不通。这个策略满足了绝大多数客户的需求,但也有少数客户希望能够改变安全组网络连通策略,同一个安全组内的网络是隔离的而不是互通的,这样可以大大减少安全组的数量进而降低维护和管理安全组的成本。基于这些客户的诉求,我们丰富了安全组网络连通策略,支持安全组内网络隔离。要使用此功能,您需要首先了解安全组内网络隔离的一些细节:

安全组内网络隔离的几点说明

  1. 隔离的粒度是网卡而不是ECS实例 如果ECS实例挂载了多块网卡,这一点需要特别注意。
  2. 不会改变默认的网络连通策略 安全组**默认的**网络连通策略仍然是同一安全组内的实例之间网络**互通**,不同安全组的实例之间默认内网不通。新的功能只是为您提供了一种手段来修改网络连通策略,因此新功能不会对您既有安全组或者对您新建的安全组造成任何影响。
  3. 隔离优先的原则
    • 被设置为组内“隔离”的安全组,优先级要高于“互通”的安全组,所以如果有两个实例属于被设置为“隔离”的安全组,那么这两个实例间网络一定不可达,不管是否它们还同时属于“互通”的安全组。
    • 被设置为组内“隔离”的安全组,优先级要高于用户定义的所有ACL,所以被隔离的安全组,组内实例间网络一定不可达,即使增加允许访问的ACL也不起作用。
  4. 网络隔离只限于当前组内的实例(网卡) 假设当前安全组是G1,组内网络设置为“隔离”,vm1和vm2属于G1,vm2和vm3属于G2,G2的组内网络互通,那么vm1和vm2网络不可达,但vm2和vm3之间网络可达。

为了更好的理解安全组内网络格力的约束和限制,下面以一个典型的例子加以说明(出于便于表达的目的,都假设一个实例只有一块网卡,因此网卡隔离就等价于实例隔离),实例和实例所属的安全组的关系如下图:
_001

安全组内网络连通策略如下:

安全组内网连通策略包含的实例G1隔离Vm1,Vm2G2互通Vm1,Vm2G3互通Vm2,Vm3

这个例子中各实例间网络连通情况如下表:

实例间网络互通/隔离原因Vm1-Vm2隔离Vm1,Vm2同时属于G1和G2,G1的策略是“隔离”,G2的策略是“互通”,基于“隔离”优先的原则,Vm1到Vm2之间不可通信Vm2-Vm3互通Vm2和Vm3同时属于G3,而且G3的策略是“互通”,所以Vm2和Vm3默认可以通信Vm1-Vm3隔离Vm1和Vm3分属不同的安全组,按照默认的网络连通策略,不同安全组的实例之间默认内网不通

修改安全组内网络连通策略API

关于此功能的API细节,请参考ModifySecurityGroupPolicy


原文地址