安全组是一种虚拟防火墙,具备状态检测和数据包过滤功能,用于在云端划分安全域。您可以通过配置安全组规则,允许或禁止安全组内的ECS实例对公网或私网的访问。

安全组特点

安全组由同一个地域内具有相同安全保护需求并相互信任的ECS实例组成。安全组具有以下功能特点:
  • 在创建ECS实例时必须指定安全组,每台ECS实例至少属于一个安全组。
  • 同一安全组内的ECS实例之间默认内网网络互通。
  • 在没有设置允许访问的安全组规则的情况下,不同安全组内的ECS实例默认内网不通。
  • (仅普通安全组)可以通过安全组规则授权两个安全组之间互访。
  • 安全组具有状态检测能力,支持有状态服务,并且通过会话保持状态。如果数据包在出方向是被允许的,那么对应的此连接在入方向方向也是允许的。从ECS实例内发起请求时,默认放行同一会话中的响应。请注意,会话保持的最长时间是910秒(s)。

安全组类型

安全组分为普通安全组以及企业安全组,下表列举了两种类型安全组的差异。本文主要讲解普通安全组相关概念和使用方法,更多有关企业安全组的信息,请参见企业安全组概述

安全组类型 安全组规则类型 安全组规则优先级 入方向访问策略 出方向访问策略 适用场景
普通安全组 默认安全组规则 由安全组模板决定 * 由安全组模板决定 * 允许所有访问请求 对网络精细化控制要求较高、希望使用多种ECS实例规格、以及网络连接数适中的用户场景
自定义安全组规则 在1~100之间自定义一个数值 支持允许和拒绝策略,可按需添加 ** 按需添加 **
企业安全组 默认安全组规则 1,并且不支持修改 由安全组模板决定 * 允许所有访问请求 对运维效率、ECS实例规格以及计算节点的规模有更高需求的用户场景
自定义安全组规则 支持允许策略,可按需添加 ** 允许所有访问请求

* 在ECS控制台上创建安全组时,您可以选择Web Server Linux(放行了80、443、22及ICMP协议)、Web Server Windows(放行了80、443、3389及ICMP协议)以及自定义(入方向上拒绝所有访问请求)的安全组模板。

** 自定义安全组规则的添加方法请参见添加安全组规则安全组应用案例

默认安全组

在一个地域创建ECS实例时,如果当前账号在这个地域里尚未创建安全组,阿里云会为您创建的一个默认安全组,其类型为普通安全组。
默认安全组
默认安全组中的默认安全组规则如下:
  • 入方向:放行了ICMP协议、SSH 22端口、RDP 3389端口,您还可以勾选放行HTTP 80端口和HTTPS 443端口。规则优先级为110。
  • 出方向:允许所有访问。

规则优先级

手动添加安全组规则时,优先级范围为1到100,数值越小,优先级越高。默认安全组的规则优先级为110,表示该规则的优先级始终低于您手动添加的安全组规则。

ECS实例所在的安全组中,无论是同一个安全组内还是不同安全组之间,如果两条安全组规则的协议类型、端口范围、授权类型、授权对象都相同,最终生效的安全组规则如下:
  • 如果优先级相同,则拒绝策略的授权规则优先生效,允许策略的授权规则不生效。
  • 如果优先级不同,则优先级高的规则生效,与授权策略无关。
说明 企业安全组不支持规则优先级设置。

网络类型

普通安全组的网络类型不同时,安全组规则在网卡设置方面会有差异。
  • 经典网络类型的安全组规则区分内网网卡和公网网卡。
  • 专有网络VPC类型安全组规则不区分内网网卡和公网网卡。

    专有网络VPC类型ECS实例的公网访问通过内网网卡映射转发。所以,您在ECS实例内部无法看到公网网卡,也只能设置内网安全组规则,但安全组规则同时对内网和公网生效。

说明 企业安全组仅支持专有网络VPC。

使用流程

普通安全组的使用流程如下图所示,企业安全组的使用流程请参见企业安全组概述
使用流程

实践建议

以下为使用安全组时的实践建议:
  • 您可以将安全组作为白名单使用,先设置为全部拒绝,然后逐一放行允许通信的访问请求策略。
  • 为应用添加安全组规则时遵循最小授权原则。例如,您可以:
    • 选择开放具体的端口,不要设置为端口范围,如80/80端口。
    • 添加安全组规则时,谨慎授权0.0.0.0/0(全网段)访问源。
  • 不建议使用一个安全组管理所有应用,不同的分层一定有不同的隔离需求。
  • 不建议为每台ECS实例单独设置一个安全组,您只需将具有相同安全保护需求的ECS实例加入同一安全组即可。
  • 建议您设置简洁的安全组规则。例如,如果您给一台ECS实例分配了多个安全组,该ECS实例很可能会同时遵循数百条安全组规则,任何规则变更都可能引起网络不通的故障。
  • 如果您需要修改生产环境的安全组规则时,建议您使用克隆安全组功能。通过在克隆的安全组上进行调试,避免影响线上应用。关于如何克隆安全组,请参见管理安全组