全部产品
Search
文档中心

云服务器 ECS:安全组应用案例

更新时间:Dec 05, 2023

为满足您在网站提供Web服务、远程连接实例等常见场景下的网络流量管理需求,本文介绍如何利用安全组的特性来配置相应的安全组规则,保障云资源网络流量的安全性和可靠性。

注意事项

在查阅安全组规则示例之前,您需要注意以下几点信息:

  • 安全组默认拒绝所有入方向访问。

  • 普通安全组默认允许所有出方向访问。

  • 不同安全组之间的实例默认内网隔离。

  • 在网络类型为专有网络的安全组中,一条安全组规则可以同时适用于公网和内网访问控制。即通过配置一条规则,您可以限制或允许来自公网和内网的流量访问。

  • 在网络类型为经典网络的安全组中,由于经典网络中公网和内网使用相同的IP地址空间,为了控制公网和内网访问,需要分别创建不同的安全组规则。

  • 典型的应用通常使用默认的端口来提供服务。这些应用会通过服务器的特定端口与外部进行通信。更多信息,请参见常用端口

网站提供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端口是否正常工作。具体操作,请参见无法访问ECS实例中的服务的排查方法

通过本地服务器远程连接实例

在使用本地服务器进行远程连接实例之前,需要根据连接方式允许访问相应服务的端口。例如,当通过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远程连接实例。请您根据实际业务需求,按照最小范围开放原则配置安全组规则,尽量避免全开(慎用::/0或者0.0.0.0/0)以免引发安全问题。

使用阿里云Workbench远程连接实例时,只需允许访问特定的服务器即可,安全组规则示例如下表所示。

规则方向

授权策略

优先级

协议类型

端口范围

授权对象

入方向

允许

1

自定义TCP

目的:22/22

源:161.117.90.22/32

入方向

允许

1

自定义TCP

目的:3389/3389

源:161.117.90.22/32

说明

关于使用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。

提供数据库访问

如果您在实例上部署了数据库,并需要允许其他实例通过内网获取数据,您可以在相应的安全组规则中配置允许来自指定IP地址或IP地址范围的流量访问对应端口,从而实现其他实例通过内网获取数据库数据的需求。以下是一些常见数据库类型及其对应的端口:

  • 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。

验证网络连通性

ICMP协议被用于传递控制消息,因此在进行一些测试操作之前,需要允许基于ICMP协议的访问。例如,在客户端执行ping命令来测试网络连通性时,就需要允许ICMP协议的访问。安全组规则的配置示例如下表所示:

规则方向

授权策略

优先级

协议类型

端口范围

授权对象

入方向

允许

1

全部ICMP(IPv4)

目的:-1/-1

源:0.0.0.0/0

入方向

允许

1

全部ICMP(IPv6)

目的:-1/-1

源:::/0

限制实例访问外部网站

如果您需要限制实例只能访问指定网站,可以将安全组作为白名单使用,设置默认拒绝所有出方向访问,然后仅允许访问指定网站的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地址,则表示安全组规则已经生效。