安全组规则是您自定义的访问规则,用于控制安全组内实例的入方向访问和出方向访问。

安全组规则属性

在添加或修改一条安全组规则时,需要设置的属性如下表所示。
属性 说明
规则方向 网络类型影响规则方向的分类:
  • 如果安全组网络类型为专有网络,安全组规则分为入方向、出方向,一条安全组规则同时适用于控制公网和内网访问。
  • 如果安全组网络类型为经典网络,安全组规则分为公网入方向、公网出方向、入方向(即内网入方向)、出方向(即内网出方向),您需要为控制公网和内网访问分别创建安全组规则。
规则方向影响匹配要素:
  • 入方向访问:访问请求和安全组规则的传输层协议、目的端口、源IP地址都相同时视为匹配成功。
  • 出方向访问:访问请求和安全组规则的传输层协议、目的端口、目的IP地址都相同时视为匹配成功。
说明 在控制台创建的安全组规则默认为三元组规则。如果您需要更精确地控制访问,可以通过OpenAPI创建五元组规则,基于源IP地址、源端口、目的IP地址、目的端口及传输层协议控制访问。更多信息,请参见安全组五元组规则
授权策略 支持允许和拒绝策略。如果两条安全组规则只有授权策略不同,则拒绝策略的安全组规则生效。
优先级 优先级的取值范围为1~100,数值越小,代表优先级越高。
协议类型 传输层协议的类型,支持TCP、UDP、ICMP(IPv4)、ICMP(IPv6)和GRE。
端口范围 入方向访问和出方向访问的目的端口,可以设置一个或多个。关于典型应用的默认端口,请参见常用端口
授权对象 支持针对以下对象授权:
  • 单一IP地址:例如192.168.0.1002408:4321:180:1701:94c7:bc38:3bfa:
  • CIDR地址块:例如192.168.0.0/242408:4321:180:1701:94c7:bc38:3bfa:***/128
  • 其他安全组:授权其他安全组内的实例访问本安全组内的实例,实现内网互通。支持授权当前账号或其他账号下的安全组。
    说明 仅普通安全组支持针对其他安全组授权。
  • 前缀列表:前缀列表是一些网络前缀(即CIDR地址块)的集合,授权对象为前缀列表时,这条安全组规则适用于前缀列表中的所有CIDR地址块,例如192.168.0.0/24,172.16.0.0/16

安全组规则过滤访问请求流程

如果一台实例加入了多个安全组,则所有安全组的安全组规则均应用于该实例。检测到访问请求时,系统会逐一尝试匹配安全组规则。如果基于协议、端口、授权对象匹配到了多条安全组规则,则继续通过优先级和授权策略来判定最终生效的安全组规则,最终结果为允许访问时才建立会话。

如果访问出现异常,您可以按需添加或修改安全组规则,新的安全组规则会自动应用于安全组内所有实例。
本文以本地服务器和普通安全组内的实例之间互相访问为例,通过流程图介绍基于安全组规则过滤访问请求的流程。下方流程图中,安全组中没有安全组规则代表您已删除安全组内所有的安全组规则,包括系统自动添加的默认规则。
说明 在控制台创建安全组时,系统会自动添加默认规则。更多默认规则的信息,请参见默认安全组安全组和安全组规则
  • 本地服务器访问普通安全组内的实例(入方向),流程如下图所示。inbound
  • 普通安全组内的实例访问本地服务器(出方向),流程如下图所示。outbound

安全组规则示例

如果您需要使用SSH密钥对远程连接Linux实例,以在专有网络安全组中添加安全组规则为例,如下表所示。
规则方向 授权策略 优先级 协议类型 端口范围 授权对象
入方向 允许 1 自定义TCP 目的:22/22 源:0.0.0.0/0
说明 0.0.0.0/0为允许所有IP远程连接实例。为安全起见,建议您在实际业务中将授权对象设置为特定的IP访问,遵循最小授权原则。
在未添加安全组规则时,普通安全组允许出方向访问。如果您希望将安全组作为白名单使用,可以设置默认拒绝所有出方向访问。以在专有网络安全组中添加安全组规则为例,如下表所示。
规则方向 授权策略 优先级 协议类型 端口范围 授权对象
出方向 拒绝 100 全部 目的:-1/-1 目的:0.0.0.0/0

更多安全组规则示例,请参见安全组应用案例