您可以通过添加安全组规则,允许或禁止安全组内的ECS实例对公网或私网的访问。

前提条件

添加安全组规则之前,请确认以下信息:
  • 您已经创建了一个安全组。具体操作,请参见创建安全组
  • 您已经知道ECS实例需要允许或禁止哪些公网或内网的访问。更多有关安全组规则设置的应用案例,请参见安全组应用案例

背景信息

安全组负责管理是否放行来自公网或者内网的访问请求。为安全起见,安全组入方向大多采取拒绝访问策略。如果您使用的是默认安全组,或者在创建安全组时选择了Web Server Linux模板或者Web Server Windows模板,则系统会给部分通信端口自动添加安全组规则,更多详情,请参见安全组概述。本文内容适用于以下场景:
  • 当您的应用需要与ECS实例所在安全组之外的网络相互通信,但请求发起后进入长时间等待状态,您需要优先设置安全组规则。
  • 当您在运营应用的过程中发现部分请求来源有恶意攻击行为,您可以添加拒绝访问的安全组规则实行隔离策略。
添加安全组规则之前,请了解以下内容:
  • 安全组规则在网卡设置方面会有差异。
    • 经典网络类型的安全组规则区分内网网卡和公网网卡。
    • 专有网络VPC类型安全组规则不区分内网网卡和公网网卡。

      专有网络VPC类型ECS实例的公网访问通过内网网卡映射转发。所以,您在ECS实例内部无法看到公网网卡,也只能设置内网安全组规则,但安全组规则同时对内网和公网生效。

  • 您自行创建的安全组在未添加任何安全组规则之前,出方向允许所有访问,入方向拒绝所有访问。
  • 安全组规则支持IPv4安全组规则和IPv6安全组规则。
  • 每个安全组的入方向规则与出方向规则的总数不能超过100条。
  • 企业安全组不支持设置优先级、不支持授权给安全组、不支持设置拒绝访问的安全组规则。更多详情,请参见企业安全组概述

操作步骤

  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择网络与安全 > 安全组
  3. 在顶部状态栏处,选择地域。
  4. 找到要配置授权规则的安全组,在操作列中,单击配置规则
  5. 安全组规则页面上,您可以选择以下任意一种方式完成操作。
    • 方式一:快速创建规则,适用于无需设置ICMP、GRE协议规则,并通过勾选多个端口便能完成操作的场景。快速创建规则提供了SSH 22、telnet 23、HTTP 80、HTTPS 443、MS SQL 1433、Oracle 1521、MySQL 3306、RDP 3389、PostgreSQL 5432和Redis 6379的应用端口设置。您可以同时勾选一个或多个端口,或者自定义TCP/UDP端口。

      单击快速创建规则快速创建规则对话框中的网卡类型规则方向端口范围等参数设置的详细指导请参见方式二添加安全组规则

    • 方式二:添加安全组规则,适用于需要设置多种通信协议的场景,如ICMP和GRE协议。
      1. 单击添加安全组规则
      2. (仅经典网络类型安全组)选择网卡类型
        • 内网:您的ECS实例不能访问公网/互联网,或者不需要访问公网。
        • 公网:您的ECS实例可以访问公网,并提供的是互联网访问应用。
      3. 选择规则方向
        • 出方向:是指ECS实例访问内网中其他ECS实例或者公网上的资源。
        • 入方向:是指内网中的其他ECS实例或公网上的资源访问ECS实例。
      4. 选择授权策略
        • 允许:放行该端口相应的访问请求。
        • 拒绝:直接丢弃数据包,不会返回任何回应信息。如果两个安全组规则其他都相同只有授权策略不同,则拒绝授权生效,允许策略不生效。
      5. 选择协议类型端口范围
        端口范围的设置受协议类型影响,下表是创建页面中涉及的协议类型端口范围的关系。更多常用端口信息,请参见常用端口的典型应用
        协议类型 端口显示范围 应用场景
        全部 -1/-1,表示不限制端口。不能设置。 可用于完全互相信任的应用场景。
        全部 ICMP(IPv4) -1/-1,表示不限制端口。不能设置。 使用ping程序检测ECS实例之间的通信状况。
        全部 ICMP(IPv6) -1/-1,表示不限制端口。不能设置。 使用ping6程序检测ECS实例之间的通信状况。
        全部 GRE -1/-1,表示不限制端口。不能设置。 用于VPN服务。
        自定义 TCP 自定义端口范围,有效的端口值是1 ~ 65535。

        必须采用<开始端口>/<结束端口>的格式。例如80/80表示端口80,1/22表示1到22端口。

        可用于允许或拒绝一个或几个连续的端口。
        自定义 UDP
        SSH 22/22 用于SSH远程连接到Linux实例。连接ECS实例后您能修改端口号,具体操作,请参见修改服务器默认远程端口
        TELNET 23/23 用于Telnet远程登录ECS实例。
        HTTP 80/80 ECS实例作为网站或Web应用服务器。
        HTTPS 443/443 ECS实例作为支持HTTPS协议的网站或Web应用服务器。
        MS SQL 1433/1433 ECS实例作为MS SQL服务器。
        Oracle 1521/1521 ECS实例作为Oracle SQL服务器。
        MySQL 3306/3306 ECS实例作为MySQL服务器。
        RDP 3389/3389 用于通过远程桌面协议连接到Windows实例。连接ECS实例后您能修改端口号,具体操作,请参见修改服务器默认远程端口
        PostgreSQL 5432/5432 ECS实例作为PostgreSQL服务器。
        Redis 6379/6379 ECS实例作为Redis服务器。
        说明 公网出方向的STMP端口25默认受限,无法通过安全组规则打开。如果您需要使用STMP 25端口,请自行规避安全风险,然后申请解封端口25。具体操作,请参见申请解封端口25
      6. 选择授权类型授权对象

        授权对象的设置受授权类型影响,以下是两者之间的关系。

        授权类型 授权对象
        IPv4 地址段访问
        • 填写单一IP地址或者CIDR网段格式,如:12.1.1.1 或 13.1.1.1/25。
        • 支持多组授权对象,用,隔开,最多支持10组授权对象。
        • 如果填写0.0.0.0/0表示允许或拒绝所有IP地址的访问,设置时请务必谨慎。

        关于CIDR格式介绍,请参见网络FAQ

        IPv6 地址段访问
        • 填写单一IP地址或者CIDR网段格式,如2001:0db8::1428:xxxx或2001:0db8::1428:xxxx/128。
        • 支持多组授权对象,用,隔开,最多支持10组授权对象。
        • 如果填写:: / 0表示允许或拒绝所有IP地址的访问,设置时请务必谨慎。
        安全组访问 安全组访问只对内网有效。授权本账号或其他账号下某个安全组中的ECS实例访问本安全组中的ECS实例,实现内网互通。设置公网访问只能通过地址段访问授权。
        • 本账号授权:选择同一账号下的其他安全组ID。如果是专有网络VPC类型的安全组,目的端必须为同一个专有网络VPC中的安全组。
        • 跨账号授权:填写目标安全组ID,以及对方账号ID。在账号管理 > 安全设置里查看账号ID。
        说明 企业安全组不支持授权安全组访问。
        说明 出于安全性考虑,经典网络的内网入方向规则,授权类型优先选择安全组访问。如果选择地址段访问,则只能授权单个IP地址,授权对象的格式只能是a.b.c.d/32,仅支持IPv4,子网掩码必须是/32。
      7. 优先级:取值范围为1 ~ 100。
        说明 优先级数值越小,优先级越高。仅普通安全组可以设置优先级,企业安全组不支持设置优先级。更多详情,请参见规则优先级
      8. 单击确定

执行结果

单击刷新图标查看已添加的安全组规则,确认已经完成添加。安全组规则的变更会自动应用到安全组内的ECS实例上,建议您立即测试是否生效。
刷新安全组

后续步骤

每台ECS实例至少属于一个安全组,您可以根据业务需要,将ECS实例加入一个或多个安全组。具体操作,请参见ECS实例加入安全组