美文网首页
阿里云ECS安全组指南:从基础到进阶,最佳实践与规则详解

阿里云ECS安全组指南:从基础到进阶,最佳实践与规则详解

作者: 阿里云最新优惠和活动汇总 | 来源:发表于2025-11-19 08:06 被阅读0次

安全组是一种虚拟防火墙,能够控制ECS实例的出入站流量。您可以将具有相同安全需求并相互信任的ECS实例放入相同的安全组,以划分安全域,保障云上资源的安全。本文介绍安全组的功能、分类、最佳实践和操作指引等。

2025安全组.png

一、功能介绍

创建ECS实例时,您需要指定一个或多个安全组。ECS 实例关联的多个安全组的规则将按固定的策略排序,共同决定是否放行实例出入站的流量。

您可以为安全组新增规则,修改或删除已有规则,这些规则变动会自动作用于安全组中的所有ECS实例。安全组规则由授权对象、目的端口、协议类型、授权策略(允许或拒绝)和优先级组成。安全组的入方向规则控制ECS实例入站的流量,出方向规则控制ECS实例出站的流量,详情请参见安全组规则。

ECS实例关联的安全组,其规则作用于主网卡。专有网络ECS实例的其他弹性网卡,可以指定与主网卡不同的安全组。

配置安全组时,您还需要了解如下信息:

  • 在专有网络VPC下,安全组仅能在所属的VPC下使用,在创建专有网络VPC的ECS实例时,您指定的虚拟交换机和安全组,必须属于同一个VPC。
  • ECS实例或者弹性网卡可以关联一个或者多个安全组,但必须至少关联一个安全组。ECS实例和弹性网卡关联安全组的数量限制,
  • 在创建ECS实例时,如果您未指定安全组,系统会将该ECS实例的主网卡关联到默认安全组。

例如下图所示,专有网络VPC包含ECS 1和 ECS 2,两个ECS的主网卡都关联安全组1。假设安全组1是普通安全组,组内连通策略默认为组内互通,那么ECS 1和 ECS 2的内网是互通的,这种互通策略不受您配置的自定义规则的影响。ECS 1和 ECS 2的其他出入方向流量受到安全组1的自定义规则控制。根据安全组1的入方向规则,使用任意IP都可以ping通安全组1内ECS 1和 ECS 2,安全组1未配置出方向规则,默认允许所有出方向的流量。

安全组功能介绍.png

二、安全组分类

2.1 普通安全组和企业级安全组

根据特性不同,安全组分为普通安全组和企业级安全组,两者均免费,适用于不同的使用场景。

  • 普通安全组:支持组内互通功能,支持添加授权安全组访问的规则,但可容纳的私网IP数量小于企业级安全组。
  • 企业级安全组:可以容纳更多的私网IP地址数量,但不支持组内互通功能,也不支持添加授权安全组访问的规则。

在ECS实例关联到多个安全组时,同一块弹性网卡只能使用一种类型的安全组。

2.2 自定义安全组和托管安全组

根据操作权限归属不同,安全组分为自定义安全组和托管安全组。自定义安全组和托管安全组都可以是普通安全组或者企业级安全组。

  • 自定义安全组:由阿里云账号直接在ECS控制台上创建的安全组为自定义安全组,您拥有自定义安全组的操作权限。默认安全组也属于自定义安全组。
  • 托管安全组:云产品可以为您创建托管安全组,操作权限属于云产品,您仅能查看不能操作。

在您使用DescribeSecurityGroups接口查询到安全组的ServiceManaged属性为True,或使用控制台看到安全组有类似云产品托管的安全组不支持修改操作的提示时,表示该安全组为托管安全组。

三、安全组使用的最佳实践

关于安全组的使用,为您提供以下最佳实践建议:

3.1 规划

您可以为安全组设置名称、描述,也可以设置安全组的标签、资源组,便于进行分类运维。建议您合理设置这些信息,方便快速识别安全组的用途,在管理较多安全组时更加清晰。

3.2 以白名单的方式使用安全组

即默认拒绝所有访问,添加允许规则来放通指定的端口范围和授权对象。

3.3 添加安全组规则时遵循最小授权原则

例如,开放Linux实例的22端口用于远程登录时,建议仅允许特定的IP访问,而非所有IP(0.0.0.0/0)。

3.4 遵循最小权限原则

在不需要普通安全组内ECS实例互相内网互通时,将普通安全组的组内连通策略设置为组内隔离。

3.5 尽量保持单个安全组内规则的简洁

按照用途将规则维护在多个安全组中,并将实例关联到这些安全组。单个安全组的规则数量过多,会增加管理复杂度。安全组规则的健康检查,提供了检测单个安全组冗余规则的能力,详情请参见检查安全组是否存在冗余规则。

3.6 不同类型应用的实例加入不同的安全组,分别维护安全组规则

例如,将允许公网访问的实例关联到同一个安全组,仅放通对外提供服务的端口,例如80、443等,默认拒绝其他所有访问。避免在允许公网访问的实例上提供其他服务,例如MySQL、Redis等,建议将内部服务部署在不允许公网访问的实例上,并关联其他的安全组。

3.7 避免直接修改线上环境使用的安全组

可以先克隆一个安全组在测试环境调试,确保修改后实例流量正常,再对线上环境的安全组规则进行修改。

四、安全组规则

安全组规则是您自定义的访问控制规则,用于控制安全组内ECS实例的出入站流量,可以实现对云资源的访问控制和网络安全防护。
使用安全组规则时,您应了解以下信息:

  • 在VPC网络下,安全组规则分为入方向和出方向,规则同时控制公网和内网流量。在经典网络下,安全组规则分为公网入方向、公网出方向、(内网)入方向、(内网)出方向,公网入方向和公网出方向规则控制公网流量,入方向和出方向规则控制内网流量。

  • 安全组是有状态的应用。一个有状态的会话连接中,会话的最长保持时长是910秒。允许访问并建立会话后,安全组会默认放行同一会话中的通信。例如,在会话期内,如果连接的数据包在入方向是允许的,则在出方向也是允许的。

  • 修改安全组规则,或通过修改网卡关联的安全组,从而改变作用于网卡的安全组规则时,如果修改前和修改后的安全组规则行为未改变,不会影响已经建立的会话。若您依赖普通安全组的组内互通进行流量放行,在修改网卡关联的安全组时,如果不希望影响已经建立的会话,您需要先将ECS实例或网卡加入新的安全组,延迟10s左右,再离开旧的安全组。

  • TCP 25端口是默认的邮箱服务端口。基于安全考虑,ECS实例的TCP 25端口默认受限,建议您使用465端口发送邮件。具体操作,请参见使用SSL加密465端口发送邮件。

  • 在不添加任何安全组规则时,安全组对流量有默认访问控制规则,这些默认访问控制规则不可见。默认访问控制规则,与您自定义的规则共同作用,控制ECS实例的流量。普通安全组和企业级安全组的默认访问控制规则不同:普通安全组入方向默认仅放行同安全组内其他实例到来的内网流量,出方向放行所有流量;企业级安全组默认出入方向流量均不放行。更多信息,请参见普通安全组与企业级安全组。

  • 普通安全组的组内连通策略,会影响该普通安全组对流量的默认访问控制规则。组内连通策略默认是组内互通,即入方向放行同安全组内其他实例到来的内网流量,出方向放行通往同安全组内其他实例的内网流量。在不需要普通安全组内实例内网互相访问的情况下,建议您遵循最小授权原则,将普通安全组的组内连通策略设置为组内隔离。更多信息,请参见修改普通安全组的组内连通策略。

  • 在决定ECS实例的流量能否通过时,会将ECS实例多个安全组的规则汇总在一起,按照固定的策略排序,并与安全组对流量的默认访问控制规则一起,作用于ECS实例,决定允许或拒绝流量通过。更多信息,请参见安全组自定义规则匹配策略。

  • 安全组的规则数量存在上限。
    单张弹性网卡最多可关联10个安全组。
    与该网卡关联的所有安全组,其规则总数(含入方向与出方向)上限为1000条。

为避免超出限制并降低管理复杂度,建议保持单个安全组内规则的简洁。可使用安全组规则的健康检查功能,定期检测并清理冗余规则。

五、安全组规则的构成

单条自定义的安全组规则,由以下信息构成:

  • 协议类型:匹配流量的协议类型。支持TCP、UDP、ICMP(IPv4)、ICMP(IPv6)和GRE。

  • 端口范围:匹配流量的目的端口,支持单个端口范围、端口列表两种类型。具体如下:
    单个端口范围:对于TCP和UDP协议,都可以指定一个斜线(/)分隔的端口范围,比如8000/9000,或22/22。对其他协议,该字段取值-1/-1。更多信息,请参见常用端口。
    端口列表:端口列表是一些端口的集合。端口范围为端口列表时,该条规则占用的安全组规则配额数量,为端口列表最大条目数,与端口列表中已有条目数量无关。使用端口列表时,安全组规则的协议类型必须是TCP或UDP。

  • 授权对象:入方向规则中匹配流量的源地址,出方向规则中匹配流量的目的地址。支持CIDR地址块(或IP地址)、安全组、前缀列表三种类型。具体如下:
    IPv4地址:例如192.168.0.100。
    IPv4 CIDR地址块:例如192.168.0.0/24。
    IPv6地址:例如2408:4321:180:1701:94c7:bc38:3bfa:9。接口将会对IPv6地址进行标准化处理,比如,2408:180:0000::1将会被处理为2408:180::1。
    IPv6 CIDR地址块:例如2408:4321:180:1701::/64。接口将会对IPv6 CIDR地址块进行标准化处理,比如,2408:4321:180:0000::/64将会被处理为2408:4321:180::/64。
    安全组ID:支持授权当前账号下或其他账号下的目标安全组,使用目标安全组中ECS实例的内网IP来进行流量匹配,实现内网访问的控制。例如,安全组A中有ECS实例b,当您授权安全组A访问时,您实际授权的是安全组A中ECS实例b的内网IP的访问权限。
    前缀列表ID:前缀列表是一些网络前缀(即CIDR地址块)的集合。授权对象为前缀列表时,该条规则占用的安全组规则配额数量,为前缀列表最大条目数,与前缀列表中已有条目数量无关。

  • 授权策略:允许或拒绝。在基于流量的协议、端口和授权对象匹配到某条安全组规则后,会对流量执行授权策略指定的动作,来允许或拒绝流量放行。

  • 优先级:取值范围为1~100,数值越小,代表优先级越高。安全组规则的排序,首先考虑优先级,其次考虑授权策略。

  • 规则方向:分为入方向和出方向,入方向规则控制入站流量,出方向规则控制出站流量。

  • 作用的网卡类型:仅在经典网络下进行区分,可以指定规则作用于经典网络ECS实例的公网或内网网卡,作用于公网网卡的安全组规则控制公网访问,作用于内网网卡的安全组规则控制内网访问。在专有网络VPC下的安全组规则,同时控制公网和内网访问。

  • 规则ID:在您添加安全组规则时,系统会为每条安全组规则生成唯一的ID。若您需要修改或删除已有安全组规则,您可以通过安全组规则ID,来指定要进行操作的安全组规则。

  • 安全组规则基于协议类型、端口范围、授权对象来匹配流量,并基于授权策略来允许或拒绝放通流量。对于一般的入方向规则,授权对象匹配流量的来源地址,端口范围匹配流量的目的端口。对于一般的出方向规则,授权对象匹配流量的目的地址,端口范围匹配流量的目的端口。当然,如果您有更精确的访问控制需求,可以使用五元组规则。

六、安全组自定义规则匹配策略

ECS实例可以关联一个或多个安全组,在决定ECS实例的流量(以入站流量为例)能否通过时,规则匹配策略如下:

1.将多个安全组的入方向规则汇总,并按照以下优先级进行排序。

首先,考虑规则的优先级,优先级数值越小的规则优先级越高,高优先级的规则总是排在低优先级的规则之前。
其次,考虑授权策略,遵循拒绝(Drop)规则优先原则,授权策略为拒绝(Drop)的规则总是排在授权策略为允许(Accept)的规则之前。

2.流量按照协议类型、端口范围、授权对象,依次匹配每条自定义规则,如果成功匹配某条规则,将会对流量执行规则授权策略指定的动作,允许或拒绝流量通行。

除了自定义的安全组规则,安全组还有一些不可见的默认访问控制规则,会影响流量的允许或拒绝。

七、安全组特殊规则

为确保ECS实例稳定运行,以及用户对部分云上功能的正常使用,安全组会默认放行某些特殊情况下的特定网络流量,并且您无法通过配置安全组规则来阻止这类默认的允许行为。包括以下特殊场景:

  • 特定条件下的网络连通性检测:
    当底层组件发生变更时,阿里云可能会对ECS实例进行按需Ping探测以验证网络连通性。这类探测是非常规性的,为了确保探测的准确性,安全组会识别这种探测流量并默认放行。

  • ICMP(PMTUD差错报文):
    如果用户的ECS实例发送的数据包超出了路径MTU(最大传输单元)且设置了DF(禁止分片)标志,ECS实例将会收到一个携带正确路径MTU的ICMP差错报文。该报文会指示ECS减小数据包大小,安全组会识别这种特殊的网络流量并默认放行。

  • SLB流量:
    网络流量通过服务器负载均衡(SLB),如ALB、NLB或CLB转发到后端ECS时,安全组会识别这种流量并默认放行。在这种情况下,将由SLB上的安全组或访问控制列表(ACL)来控制ECS实例的出入站流量。

  • MetaServer访问:
    MetaServer提供了ECS实例必需的元数据服务,是确保实例正常运行的基础服务。安全组默认允许出站流量访问MetaServer(IP地址为100.100.100.200),您无需配置额外规则。

八、安全组五元组规则

默认在控制台配置安全组规则的情况下,存在如下方面的限制:

  • 安全组入方向规则:源IP地址、目的端口、协议类型。
  • 安全组出方向规则:目的IP地址、目的端口、协议类型。

当您需要更精确地控制ECS实例的出站流量和入站流量时,可以使用API配置安全组五元组规则,五元组规则与原有的安全组规则完全兼容。安全组出入方向五元组规则需要配置内容为:源IP地址、源端口、目的IP地址、目的端口以及协议类型。

在您配置入方向规则的目的IP地址,或是出方向规则的源IP地址,来控制安全组内指定ECS实例的流量时,您需要指定ECS实例的私网IP地址,而不是公网IP地址(包含固定公网IP和EIP)。 因为固定公网IP和EIP都是NAT IP,它们实际位于阿里云的公网网关上,而安全组作用于实例的弹性网卡,其控制的是NAT IP地址对应的私网IP的流量。

例如,以下五元组出方向规则的代码示例表示172.16.1.0/32通过22端口对10.0.0.1/32发起TCP访问。

源IP地址:172.16.1.0/32
源端口:22
目的IP地址:10.0.0.1/32
目的端口:不限制
协议类型:TCP

2025阿里云服务器热门活动直达:
1、轻量应用服务器、通用算力型u2i、计算型c9i、通用型g9i、内存型r9i实例云服务器活动直达:阿里云服务器爆款直降90%,89元享4核16G强劲配置
2、gpu云服务器专属活动直达:阿里云gpu云服务器按量1折,包月5折起,包年4折起
3、经济型e、通用算力型u1以及云产品通用代金券、7.5折优惠券,没有套路真的能减:阿里云官方云小站平台

阿里云7.5优惠券.png

小结:安全组作为阿里云ECS实例的虚拟防火墙,在云上资源安全防护中扮演着关键角色。本文全面且深入地介绍了安全组的功能、分类,详细阐述了其最佳实践与规则构成。同时,对安全组自定义规则匹配策略、特殊规则以及五元组规则进行了细致讲解。合理运用安全组,遵循最佳实践,能精准控制ECS实例出入站流量,保障云上资源安全稳定运行,为企业在云环境中的业务开展筑牢安全防线。

相关文章

网友评论

      本文标题:阿里云ECS安全组指南:从基础到进阶,最佳实践与规则详解

      本文链接:https://www.haomeiwen.com/subject/psiofstx.html