安全组应用示例
使用须知
在配置安全组规则之前,您需要先了解以下信息:
- 不同安全组之间的实例默认网络隔离,无法互相访问。
- 安全组默认拒绝所有来自外部的请求,即本安全组内的实例网络互通,外部无法访问安全组内的实例。
- 安全组的出方向规则一般默认全部放通,即允许安全组内的实例访问外部。
控制外部指定IP地址或安全组对实例的访问
- 安全组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网络互通。
- 两个安全组的出方向规则允许所有流量从安全组内实例流出。
控制虚拟IP访问安全组内实例
如果您通过中间网络实例在不同子网的实例之间转发流量,比如图2中,子网Subnet-A的ECS通过虚拟IP和子网Subnet-B的ECS互相通信。由于存在中间网络实例,此时安全组规则的源地址选择实例所在的安全组时,无法放通中间网络实例转发的流量,源地址必须设置成中间网络实例的私有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。
控制对等连接两端VPC内的实例互访
- 在安全组Sg-A中,规则A01允许来自Sg-B内实例的流量访问Sg-A内的实例,源地址为安全组Sg-B。
- 在安全组Sg-B中,规则B01允许来自Sg-A内实例的流量访问Sg-B内的实例,源地址为安全组Sg-A。
在本地服务器远程连接云服务器上传或者下载文件(FTP)
安全组默认拒绝所有来自外部的请求,如果您需要在本地服务器远程连接云服务器上传或者下载文件,那么您需要开通FTP(20、21)端口。
规则方向 |
优先级 |
策略 |
类型 |
协议端口 |
源地址 |
---|---|---|---|---|---|
入方向规则 |
1 |
允许 |
IPv4 |
自定义TCP: 20-21 |
IP地址:0.0.0.0/0 |
源地址设置为0.0.0.0/0表示允许所有外部IP地址远程连接云服务器上传或者下载文件,如果将当前端口暴露到公网,可能存在网络安全风险,建议您将源IP设置为已知的IP地址,配置示例请参见表6。
在云服务器上搭建网站对外提供Web服务
安全组默认拒绝所有来自外部的请求,如果您在云服器上搭建了可供外部访问的网站,则您需要在安全组入方向添加对应的规则,放通对应的端口,例如HTTP(80)、HTTPS(443)。
规则方向 |
优先级 |
策略 |
类型 |
协议端口 |
源地址 |
---|---|---|---|---|---|
入方向规则 |
1 |
允许 |
IPv4 |
自定义TCP: 80 |
IP地址:0.0.0.0/0 |
入方向规则 |
1 |
允许 |
IPv4 |
自定义TCP: 443 |
IP地址:0.0.0.0/0 |
使用ping命令验证网络连通性
安全组默认拒绝所有来自外部的请求,如果您需要在云服器上使用ping命令验证网络的连通性,则您需要在安全组入方向添加对应的规则,放通ICMP端口。
规则方向 |
优先级 |
策略 |
类型 |
协议端口 |
源地址 |
---|---|---|---|---|---|
入方向规则 |
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内云服务器的请求进入。
规则方向 |
优先级 |
策略 |
类型 |
协议端口 |
源地址 |
---|---|---|---|---|---|
入方向规则 |
1 |
允许 |
IPv4 |
自定义TCP: 3306 |
安全组:sg-A |
云服务器提供数据库访问服务
安全组默认拒绝所有来自外部的请求,如果您在云服器上部署了数据库服务,允许其他云服务器通过内网访问数据库服务,则您需要在部署数据库云服务器所在的安全组内,添加入方向规则,放通对应的端口,例如MySQL(3306)、Oracle(1521)、MS SQL(1433)、PostgreSQL(5432)、Redis(6379)。
本示例中源地址提供的配置仅供参考,请您根据实际需求设置源地址。
规则方向 |
优先级 |
策略 |
类型 |
协议端口 |
源地址 |
描述 |
---|---|---|---|---|---|---|
入方向规则 |
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数据库服务。 |