本文针对网站提供Web服务、远程连接实例等常见场景,介绍如何基于安全组的特性配置安全组规则。
背景信息
本文中安全组规则示例的说明如下:
- 均针对网络类型为专有网络的安全组,一条安全组规则同时适用于控制公网和内网访问。对于网络类型为经典网络的安全组,请注意为控制公网和内网访问分别创建安全组规则。
- 均针对典型应用的默认端口。应用通过服务器的端口对外提供服务,更多信息,请参见常用端口。
网站提供Web服务
在未添加安全组规则时,安全组拒绝所有入方向访问。如果您在实例上搭建对外提供Web服务的网站,需要允许访问相应服务的端口,例如HTTP(80)、HTTPS(443),安全组规则的配置示例如下表所示。
规则方向 | 授权策略 | 优先级 | 协议类型 | 端口范围 | 授权对象 |
---|---|---|---|---|---|
入方向 | 允许 | 1 | 自定义TCP | 目的:80/80 | 源:0.0.0.0/0 |
入方向 | 允许 | 1 | 自定义TCP | 目的:443/443 | 源:0.0.0.0/0 |
说明 如果添加安全组规则后仍无法访问网站,排查思路请参见
检查TCP 80端口是否正常工作。
从本地服务器远程连接实例
在未添加安全组规则时,安全组拒绝所有入方向访问。从本地服务器远程连接实例前,需根据连接方式允许访问相应服务的端口,例如通过SSH远程连接Linux实例时允许访问SSH(22),通过RDP远程连接Windows实例时允许访问RDP(3389),安全组规则的配置示例如下表所示。
规则方向 | 授权策略 | 优先级 | 协议类型 | 端口范围 | 授权对象 |
---|---|---|---|---|---|
入方向 | 允许 | 1 | 自定义TCP | 目的:22/22 | 源:0.0.0.0/0 |
入方向 | 允许 | 1 | 自定义TCP | 目的:3389/3389 | 源:0.0.0.0/0 |
说明
0.0.0.0/0
为允许所有IP远程连接实例。为安全起见,建议您在实际业务中将授权对象设置为特定的IP,遵循最小授权原则。
使用阿里云Workbench远程连接实例时,允许访问特定的服务器即可,安全组规则示例如下表所示。
规则方向 | 授权策略 | 优先级 | 协议类型 | 端口范围 | 授权对象 |
---|---|---|---|---|---|
入方向 | 允许 | 1 | 自定义TCP | 目的:22/22 | 源:47.96.60.0/24,118.31.243.0/24,100.104.0.0/16 |
入方向 | 允许 | 1 | 自定义TCP | 目的:3389/3389 | 源:47.96.60.0/24,118.31.243.0/24,100.104.0.0/16 |
说明 关于使用Workbench连接经典网络实例的安全组规则说明,请参见
Linux实例相关安全组规则详情和
Windows实例相关安全组规则详情。
不同安全组的实例内网互通
在未添加安全组规则时,不同安全组之间的实例内网隔离。在同一个专有网络中,如果在实例间进行数据共享等操作,例如安全组A的实例都需要通过FTP查看安全组B的实例中的共享文件,您可以通过授权安全组访问实现内网互通,比授权单个IP地址或者CIDR地址块更加便捷。
说明 如果实例分属于不同的专有网络,则不能通过安全组实现内网互通。您可以使用云企业网连接不同专有网络之间的实例,更多信息,请参见
云企业网快速入门。
安全组A和安全组B属于同一账号时,授权对象填写安全组ID即可,安全组规则的配置示例如下表所示。
规则方向 | 授权策略 | 优先级 | 协议类型 | 端口范围 | 授权对象 |
---|---|---|---|---|---|
入方向 | 允许 | 1 | 自定义TCP | 目的:21/21 | 源:sg-bp1hv6wvmegs036**** |
说明 安全组ID仅为示例,请按实际情况替换。
安全组A和安全组B属于不同账号时,授权对象需要填写阿里云账号ID和安全组ID,安全组规则的配置示例如下表所示。
规则方向 | 授权策略 | 优先级 | 协议类型 | 端口范围 | 授权对象 |
---|---|---|---|---|---|
入方向 | 允许 | 1 | 自定义TCP | 目的:21/21 | 源:160998252992****/sg-bp174yoe2ib1sqj5**** |
说明 阿里云账号ID和安全组ID仅为示例,请按实际情况替换。
提供数据库访问
如果您在实例上部署了数据库,需要允许其他实例通过内网获取数据,请根据数据库类型允许访问相应服务的端口,例如MySQL (3306)、Oracle(1521)、MS SQL(1433)、PostgreSQL(5432)、Redis(6379),安全组规则的配置示例如下表所示。
规则方向 | 授权策略 | 优先级 | 协议类型 | 端口范围 | 授权对象 |
---|---|---|---|---|---|
入方向 | 允许 | 1 | 自定义TCP | 目的:3306/3306 | 源:172.16.XX.XX |
入方向 | 允许 | 1 | 自定义TCP | 目的:1521/1521 | 源:192.168.XX.XX |
入方向 | 允许 | 1 | 自定义TCP | 目的:1433/1433 | 源:192.168.XX.XX/16 |
入方向 | 允许 | 1 | 自定义TCP | 目的:5432/5432 | 源:sg-bp1hv6wvmegs036**** |
入方向 | 允许 | 1 | 自定义TCP | 目的:6379/6379 | 源:160998252992****/sg-bp174yoe2ib1sqj5**** |
说明 IP地址、CIDR地址块、阿里云账号ID和安全组ID仅为示例,请按实际情况替换。
ping实例
ICMP协议用于传递控制消息,允许基于ICMP协议的访问后才能完成一些测试操作,例如在客户端执行ping命令测试网络可达性,安全组规则的配置示例如下表所示。
规则方向 | 授权策略 | 优先级 | 协议类型 | 端口范围 | 授权对象 |
---|---|---|---|---|---|
入方向 | 允许 | 1 | 全部ICMP(IPv4) | 目的:-1/-1 | 源:0.0.0.0/0 |
入方向 | 允许 | 1 | 全部ICMP(IPv6) | 目的:-1/-1 | 源:::/0 |
说明 如果添加安全组规则后,仍然无法从客户端ping通实例,排查思路请参见
Linux系统的ECS中没有禁ping却ping不通的解决方法。
限制实例访问外部网站
在未添加安全组规则时,普通安全组允许所有出方向访问。如果需要限制实例只能访问指定网站,可以将安全组作为白名单使用,设置默认拒绝所有出方向访问,然后仅允许访问指定网站的IP,安全组规则的配置示例如下表所示。
说明 如果两条安全组规则只有授权策略不同,则拒绝策略的安全组规则生效,因此拒绝策略的优先级应低于允许策略的优先级。
规则方向 | 授权策略 | 优先级 | 协议类型 | 端口范围 | 授权对象 |
---|---|---|---|---|---|
出方向 | 拒绝 | 2 | 全部 | 目的:-1/-1 | 目的:0.0.0.0/0 |
出方向 | 允许 | 1 | 自定义TCP | 目的:80/80 | 目的:47.96.XX.XX |
出方向 | 允许 | 1 | 自定义TCP | 目的:443/443 | 目的:121.199.XX.XX |
说明 网站的IP仅为示例,请按实际情况替换。
添加安全组规则后,您可以登录实例进行测试,例如执行ping命令。如果实例只能访问指定的IP地址,说明安全组规则已经生效。