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

安全组特点

安全组由同一个地域(Region)内具有相同安全保护需求并相互信任的实例组成。安全组具有以下功能特点:

  • 在创建实例时必须指定安全组,每个实例至少属于一个安全组。
  • 同一安全组内的实例之间默认内网网络互通,不同安全组的实例之间默认内网不通。
  • 可以通过安全组规则授权两个安全组之间互访。
  • 安全组具有状态检测能力,支持有状态服务,具体通过会话保持状态。从实例内发起请求时,默认放行同一会话中的响应。请注意,会话保持的最长时间是910秒(s)。

安全组分类

安全组有两种类型,如下表所示:
安全组类型 安全组规则类型 安全组规则优先级 入方向规则 出方向规则 适用场景
默认安全组 默认安全组的默认规则。 110 放行 ICMP 协议、SSH 22 端口、RDP 3389 端口,禁止其他所有访问,您可以勾选放行 HTTP 80 和HTTPS 443 端口。 允许所有访问。 同一VPC中没有自定义安全组。
自定义安全组 自定义安全组的默认规则。 110 拒绝所有访问。 允许所有访问。 同一VPC中已创建自定义安全组,但没有添加安全组规则。
自定义安全组的自定义规则。 自定义,可设置1~100之间的任一个数值 按需添加安全组规则。详情请参见添加安全组规则安全组应用案例 按需添加的安全组规则。详情请参见添加安全组规则安全组应用案例 同一VPC中已创建自定义安全组,并且已添加安全组规则。

网络类型不同,安全组规则不同。

经典网络类型的安全组规则区分内网和公网,VPC 类型安全组规则不区分内网和公网。VPC 类型 ECS 实例的公网访问通过私网网卡映射完成,所以,您在实例内部看不到公网网卡,在安全组里也只能设置内网规则。安全组规则同时对内网和公网生效。

安全组优先级

安全组规则的优先级数值越小,优先级越高。

ECS实例可以加入不同的安全组。无论是同一个安全组内或不同安全组之间,如果安全组规则互相矛盾,即协议类型、端口范围、授权类型、授权对象都相同,最终生效的安全组规则如下:
  • 如果优先级相同,则拒绝授权规则生效,允许授权规则不生效。
  • 如果优先级不同,则优先级高的规则生效,与授权策略的设置无关。

使用流程



安全组实践建议

  • 安全组作为白名单使用。
  • 开放应用出入规则时遵循最小授权原则。例如,您可以选择开放具体的端口(如 80 端口);添加安全组规则时,谨慎授权0.0.0.0/0(全网段)。
  • 不应使用一个安全组管理所有应用,不同的分层一定有不同的安全组需求。
  • 将具有相同安全保护需求的实例加入同一安全组,无需为每个实例单独设置一个安全组。
  • 设置简洁的安全组规则。如果您给一个实例分配多个安全组,则该实例可能会应用多达数百条规则。访问该实例时,可能会出现网络不通的问题。
  • ECS控制台提供了克隆安全组和安全组规则的功能。如果您想要修改线上的安全组和规则,先克隆一个安全组,再在克隆的安全组上进行调试,从而避免直接影响线上应用。