安全组是一种虚拟防火墙,具备状态检测和包过滤功能。加入同一个普通安全组内的实例之间默认允许所有协议、端口的互相访问。为了满足普通安全组内实例之间网络隔离的需求,阿里云丰富了安全组网络连通策略,实现普通安全组组内网络隔离。
安全组内网络隔离规则
安全组内默认的网络连通策略如下:
- 普通安全组内的实例之间允许所有协议、端口的互相访问,企业安全组内的实例之间网络隔离。
- 不同安全组的实例之间默认网络隔离。
说明 如果分属于不同安全组的实例之间需要互相访问,可以通过安全组规则授权。
针对普通安全组内的实例之间默认网络互通的情况,您可以修改普通安全组内的网络连通策略,实现组内隔离。具体步骤可参见修改策略。
设置安全组内网络隔离时,需注意以下事项:
- 仅设置指定的普通安全组内的网络隔离,不改变默认的网络连通策略, 即其他已有和新建的普通安全组,以及企业安全组仍采用默认策略。
- 安全组内网络隔离是网卡之间的隔离,而不是ECS实例之间的隔离。若实例上绑定了多张弹性网卡,需设置每个网卡所属安全组的组内网络隔离。
- 安全组内网络隔离的优先级最低,即设置组内网络隔离后,仅在安全组内没有任何自定义规则的情况下保证组内实例之间网络隔离。
以下情况,安全组内实例之间仍然可以互相访问:
- 实例同时归属于多个安全组时,有一个及以上的安全组未设置组内隔离。
- 既设置了安全组内隔离,又设置了让组内实例之间可以互相访问的ACL。
说明 ACL相关内容请参见 网络ACL概述。
修改策略
您可以使用ModifySecurityGroupPolicy接口来修改普通安全组内的网络连通策略,实现组内隔离。
说明 企业安全组默认组内隔离,不支持修改组内网络连通策略。
案例分析
本示例中,Group1、Group2分别为2个不同的普通安全组,ECS1、ECS2、ECS3分别为3个不同的ECS实例。实例和实例所属的安全组的关系如下:
- Group1:包含ECS1和ECS2,设置组内网络隔离。
- Group2:包含ECS2和ECS3,保持默认,即网络互通。
各实例间的网络连通情况如下:
实例 | 网络连通情况 | 说明 |
---|---|---|
ECS1和ECS2 | 隔离 | ECS1和ECS2同时属于Group1。Group1的策略是组内隔离,所以ECS1和ECS2之间网络隔离。 |
ECS2和ECS3 | 互通 | ECS2和ECS3同时属于Group2。Group2的策略是默认互通,所以ECS2和ECS3之间网络互通。 |
ECS1和ECS3 | 隔离 | ECS1和ECS3分属不同的安全组,不同安全组的实例之间默认网络不通,所以ECS1和ECS3之间网络隔离。 |