更新时间:2025-08-04 GMT+08:00

安全组应用示例

使用须知

在配置安全组规则之前,您需要先了解以下信息:

  • 不同安全组之间的实例默认网络隔离,无法互相访问。
  • 安全组默认拒绝所有来自外部的请求,即本安全组内的实例网络互通,外部无法访问安全组内的实例。

    您需要遵循白名单原则添加安全组入方向规则,允许来自外部的特定请求访问安全组内的实例。

  • 安全组的出方向规则一般默认全部放通,即允许安全组内的实例访问外部。
    如果出方向规则被删除,将会导致安全组内实例无法正常访问外部,您可以参考表1重新添加规则。
    表1 安全组默认出方向规则

    方向

    优先级

    策略

    类型

    协议端口

    目的地址

    描述

    出方向

    1

    允许

    IPv4

    全部

    0.0.0.0/0

    针对全部IPv4协议,允许安全组内的实例可访问外部任意IP和端口。

    出方向

    1

    允许

    IPv6

    全部

    ::/0

    针对全部IPv6协议,允许安全组内的实例可访问外部任意IP和端口。

控制外部指定IP地址或安全组对实例的访问

图1所示,在VPC-X中有两个子网Subnet-A和Subnet-B,Subnet-A中的ECS承载同一类业务,需要相同的网络连接请求,因此均关联至安全组Sg-A。同理,Subnet-B中的ECS均关联至另外一个安全组Sg-B。
  • 安全组Sg-A入方向规则A01允许从指定IP地址 (172.16.0.0/24)访问安全组内实例的SSH(22)端口,用于远程登录安全组内的Linux云服务器。
  • 安全组Sg-A入方向规则A02允许安全组内的实例可使用任何协议和端口互相通信,即子网Subnet-A内的ECS网络互通。
  • 安全组Sg-B入方向规则B01允许Sg-A内的实例访问Sg-B内实例的SSH(22)端口,即通过子网Subnet-A的ECS可远程登录Subnet-B内的ECS。
  • 安全组Sg-B入方向规则B02允许安全组内的实例可使用任何协议和端口互相通信,即子网Subnet-B内的ECS网络互通。
  • 两个安全组的出方向规则允许所有流量从安全组内实例流出。
图1 安全组应用示例(控制外部指定IP地址或安全组对实例的访问)

控制虚拟IP访问安全组内实例

如果您通过中间网络实例在不同子网的实例之间转发流量,比如图2中,子网Subnet-A的ECS通过虚拟IP和子网Subnet-B的ECS互相通信。由于存在中间网络实例,此时安全组规则的源地址选择实例所在的安全组时,无法放通中间网络实例转发的流量,源地址必须设置成中间网络实例的私有IP地址或者子网网段。

在VPC-X中有两个子网Subnet-A和Subnet-B,Subnet-A中的ECS关联至安全组Sg-A,Subnet-B中的ECS关联至安全组Sg-B。通过虚拟IP将Subnet-A中的ECS搭建成Keepalived高可用集群,后端服务器ECS-A01和ECS-A02形成主备模式,对外使用虚拟IP进行通信。
  • 安全组Sg-A入方向规则A01允许Sg-B内的实例使用任何协议和端口访问Sg-A内的实例。
  • 安全组Sg-B入方向规则说明如下:
    • 规则B02:允许Sg-A内的实例使用私有IP地址访问Sg-B内实例,但是当前组网下,Sg-A内的实例和Sg-B内的实例通信需要经过虚拟IP,此时虚拟IP的流量无法流入Sg-B内的实例,该规则不适用于当前组网。
    • 规则B01:允许虚拟IP(192.168.0.21)使用任何协议和端口访问Sg-B内的实例。当前组网中,您还可以将源地址设置成子网Subnet-A的网段192.168.0.0/24。
图2 安全组应用示例(控制虚拟IP访问安全组内实例)

控制对等连接两端VPC内的实例互访

图3所示,在区域A内,通过VPC对等连接连通VPC-A和VPC-B之间的网络。对等连接路由配置完成后,子网Subnet-A01和子网Subnet-B01之间网络已连通。但是由于两个子网内的ECS分别关联了不同的安全组,此时ECS之间仍然网络不通,您还需要放通安全组Sg-A和Sg-B的网络,才可以实现对等连接两端的ECS网络互通。
  • 在安全组Sg-A中,规则A01允许来自Sg-B内实例的流量访问Sg-A内的实例,源地址为安全组Sg-B。
  • 在安全组Sg-B中,规则B01允许来自Sg-A内实例的流量访问Sg-B内的实例,源地址为安全组Sg-A。
图3 安全组应用示例(控制对等连接两端VPC内的实例互访)

通过本地服务器远程登录云服务器

安全组默认拒绝所有来自外部的请求,如果您需要从本地服务器远程登录云服务器,那么需要根据您的云服务器操作系统类型,在安全组入方向添加对应的规则。

  • 通过SSH远程登录Linux云服务器,需要放通SSH(22)端口,请参见表2
  • 通过RDP远程登录Windows云服务器,需要放通RDP(3389)端口,请参见表3
    表2 通过SSH远程登录Linux云服务器

    规则方向

    优先级

    策略

    类型

    协议端口

    源地址

    入方向规则

    1

    允许

    IPv4

    自定义TCP: 22

    IP地址:0.0.0.0/0

    表3 通过RDP远程登录Windows云服务器

    规则方向

    优先级

    策略

    类型

    协议端口

    源地址

    入方向规则

    1

    允许

    IPv4

    自定义TCP: 3389

    IP地址:0.0.0.0/0

  • 源地址设置为0.0.0.0/0表示允许所有外部IP远程登录云服务器,如果将当前端口暴露到公网,可能存在网络安全风险,建议您将源IP设置为已知的IP地址,配置示例请参见表4
    表4 通过特定IP地址远程登录云服务器

    云服务器类型

    规则方向

    优先级

    策略

    类型

    协议端口

    源地址

    Linux云服务器

    入方向规则

    1

    允许

    IPv4

    自定义TCP: 22

    IP地址:192.168.0.0/24

    Windows云服务器

    入方向规则

    1

    允许

    IPv4

    自定义TCP: 3389

    IP地址:10.10.0.0/24

在本地服务器远程连接云服务器上传或者下载文件(FTP)

安全组默认拒绝所有来自外部的请求,如果您需要在本地服务器远程连接云服务器上传或者下载文件,那么您需要开通FTP(20、21)端口。

表5 在本地服务器远程连接云服务器上传或者下载文件

规则方向

优先级

策略

类型

协议端口

源地址

入方向规则

1

允许

IPv4

自定义TCP: 20-21

IP地址:0.0.0.0/0

源地址设置为0.0.0.0/0表示允许所有外部IP地址远程连接云服务器上传或者下载文件,如果将当前端口暴露到公网,可能存在网络安全风险,建议您将源IP设置为已知的IP地址,配置示例请参见表6

表6 通过已知的服务器远程连接云服务器上传或者下载文件

方向

优先级

策略

类型

协议端口

源地址

入方向

1

允许

IPv4

自定义TCP: 20-21

IP地址:192.168.0.0/24

在云服务器上搭建网站对外提供Web服务

安全组默认拒绝所有来自外部的请求,如果您在云服器上搭建了可供外部访问的网站,则您需要在安全组入方向添加对应的规则,放通对应的端口,例如HTTP(80)、HTTPS(443)。

表7 云服务器上搭建网站对外提供Web服务

规则方向

优先级

策略

类型

协议端口

源地址

入方向规则

1

允许

IPv4

自定义TCP: 80

IP地址:0.0.0.0/0

入方向规则

1

允许

IPv4

自定义TCP: 443

IP地址:0.0.0.0/0

使用ping命令验证网络连通性

安全组默认拒绝所有来自外部的请求,如果您需要在云服器上使用ping命令验证网络的连通性,则您需要在安全组入方向添加对应的规则,放通ICMP端口。

表8 使用ping命令验证网络连通性

规则方向

优先级

策略

类型

协议端口

源地址

入方向规则

1

允许

IPv4

ICMP: 全部

IP地址:0.0.0.0/0

入方向规则

1

允许

IPv6

ICMP: 全部

IP地址:::/0

实现不同安全组的实例内网网络互通

同一个VPC内,位于不同安全组内的实例网络不通。如果您需要在同一个VPC内的实例之间共享数据,比如安全组sg-A内的云服务器访问安全组sg-B内的MySQL数据库,您需要通过在安全组sg-B中添加一条入方向规则,放通MySQL (3306)端口,允许来自安全组sg-A内云服务器的请求进入。

表9 不同安全组内实例内网互通

规则方向

优先级

策略

类型

协议端口

源地址

入方向规则

1

允许

IPv4

自定义TCP: 3306

安全组:sg-A

云服务器提供数据库访问服务

安全组默认拒绝所有来自外部的请求,如果您在云服器上部署了数据库服务,允许其他云服务器通过内网访问数据库服务,则您需要在部署数据库云服务器所在的安全组内,添加入方向规则,放通对应的端口,例如MySQL(3306)、Oracle(1521)、MS SQL(1433)、PostgreSQL(5432)、Redis(6379)。

本示例中源地址提供的配置仅供参考,请您根据实际需求设置源地址。

表10 云服务器提供数据库访问服务

规则方向

优先级

策略

类型

协议端口

源地址

描述

入方向规则

1

允许

IPv4

自定义TCP: 3306

安全组:sg-A

允许安全组sg-A内云服务器访问MySQL数据库服务。

入方向规则

1

允许

IPv4

自定义TCP: 1521

安全组:sg-B

允许安全组sg-B内云服务器访问Oracle数据库服务。

入方向规则

1

允许

IPv4

自定义TCP: 1433

IP地址:172.16.3.21/32

允许私网IP地址为172.16.3.21的云服务器访问MS SQL数据库服务。

入方向规则

1

允许

IPv4

自定义TCP: 5432

IP地址:192.168.0.0/24

允许私网IP地址属于192.168.0.0/24网段的云服务器访问PostgreSQL数据库服务。

入方向规则

1

允许

IPv4

自定义TCP: 6379

IP地址组:ipGroup-A

允许私网IP地址属于IP地址组ipGroup-A范围内的云服务器访问PostgreSQL数据库服务。