更新时间:2024-03-30 GMT+08:00

添加安全组规则

操作场景

安全组实际是网络流量访问策略,由入方向规则和出方向规则共同组成。您可以参考以下章节添加安全组规则,用来控制流入/流出安全组内实例(如ECS)的流量。

常见的安全组规则应用场景包括:允许或者拒绝特定来源的网络流量、允许或拒绝特定协议的网路流量、屏蔽不需要开放的端口、以及配置服务器的特定访问权限等。

使用须知

  • 配置安全组规则前,您需要规划好安全组内实例的访问策略,常见安全组规则配置案例请参见安全组配置示例
  • 安全组的规则数量有限制,请您尽量保持安全组内规则的简洁,详细约束请参见安全组的限制
  • 在安全组规则中放开某个端口后,您还需要确保实例内对应的端口也已经放通,安全组规则才会对实例生效,具体请参见检查安全组规则是否生效
  • 通常情况下,同一个安全组内的实例默认网络互通。当同一个安全组内实例网络不通时,可能情况如下:
    • 当实例属于同一个VPC时,请您检查入方向规则中,是否删除了同一个安全组内实例互通对应的规则,规则详情如表1所示。
      表1 安全组内实例互通规则

      方向

      优先级

      策略

      类型

      协议端口

      源地址/目的地址

      入方向

      1

      允许

      IPv4

      全部

      源地址:当前安全组(Sg-A)

      入方向

      1

      允许

      IPv6

      全部

      源地址:当前安全组(Sg-A)

    • 不同VPC的网络不通,所以当实例属于同一个安全组,但属于不同VPC时,网络不通。

      您可以通过VPC对等连接连通不同区域的VPC。

在安全组内添加安全组规则

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域和项目。
  3. 在页面左上角单击图标,打开服务列表,选择“网络 > 虚拟私有云”。

    进入虚拟私有云列表页面。

  4. 在左侧导航栏,选择“访问控制 > 安全组”。

    进入安全组列表页面。

  5. 在安全组列表中,单击目标安全组所在行的操作列下的“配置规则”。

    进入安全组规则配置页面。

  6. 在“入方向规则”页签,单击“添加规则”。

    弹出“添加入方向规则”对话框。

  7. 根据界面提示,设置入方向规则参数。

    单击“+”按钮,可以依次增加多条入方向规则。

    图1 添加安全组入方向规则
    表2 入方向规则参数说明

    参数

    说明

    取值样例

    优先级

    安全组规则优先级。

    优先级可选范围为1-100,默认值为1,即最高优先级。优先级数字越小,规则优先级级别越高。

    1

    策略

    安全组规则策略,支持的策略如下:
    • 如果“策略”设置为允许,表示允许源地址访问安全组内云服务器的指定端口。
    • 如果“策略”设置为拒绝,表示拒绝源地址访问安全组内云服务器的指定端口。

    安全组规则匹配流量时,首先按照优先级进行排序,其次按照策略排序,拒绝策略高于允许策略,更多信息请参见流量匹配安全组规则的顺序

    允许

    类型

    源地址支持的IP地址类型,如下:
    • IPv4
    • IPv6

    IPv4

    协议端口

    安全组规则中用来匹配流量的网络协议类型,目前支持TCP、UDP、ICMP和GRE协议。

    TCP

    安全组规则中用来匹配流量的目的端口,取值范围为:1~65535。

    在入方向规则中,表示外部访问安全组内实例的指定端口。

    端口填写支持下格式:
    • 单个端口:例如22
    • 连续端口:例如22-30
    • 多个端口:例如22,23-30,一次最多支持20个不连续端口组, 端口组之间不能重复。
    • 全部端口:为空或1-65535

    22或22-30

    源地址

    在入方向规则中,用来匹配外部请求的源地址,支持以下格式:
    • IP地址:表示源地址为某个固定的IP地址。当源地址选择IP地址时,您可以在一个IP地址框内同时输入多个IP地址,一个IP地址对应一条安全组规则。
      • 单个IP地址:IP地址/掩码。

        单个IPv4地址示例为192.168.10.10/32。

        单个IPv6地址示例为2002:50::44/128。

      • IP网段:IP地址/掩码。

        IPv4网段示例为192.168.52.0/24。

        IPv6网段示例为2407:c080:802:469::/64。

      • 所有IP地址:

        0.0.0.0/0表示匹配所有IPv4地址。

        ::/0表示匹配所有IPv6地址。

    • 安全组:表示源地址为另外一个安全组,您可以在下拉列表中,选择同一个区域内的其他安全组。当安全组A内有实例a,安全组B内有实例b,在安全组A的入方向规则中,放通源地址为安全组B的流量,则来自实例b的内网访问请求被允许进入实例a。
    • IP地址组:表示源地址为一个IP地址组,IP地址组是一个或者多个IP地址的集合。您可以在下拉列表中,选择可用的IP地址组。对于安全策略相同的IP网段和IP地址,此处建议您使用IP地址组简化管理。

    IP地址:0.0.0.0/0

    描述

    安全组规则的描述信息,非必填项。

    描述信息内容不能超过255个字符,且不能包含“<”和“>”。

    -

  8. 入方向规则设置完成后,单击“确定”。

    返回入方向规则列表,可以查看添加的入方向规则。

  9. 在“出方向规则”页签,单击“添加规则”。

    弹出“添加出方向规则”页签。

  10. 根据界面提示,设置出方向规则参数。

    单击“+”按钮,可以依次增加多条出方向规则。

    图2 添加安全组出方向规则
    表3 出方向规则参数说明

    参数

    说明

    取值样例

    优先级

    安全组规则优先级。

    优先级可选范围为1-100,默认值为1,即最高优先级。优先级数字越小,规则优先级级别越高。

    1

    策略

    安全组规则策略,支持的策略如下:
    • 如果“策略”设置为允许,表示允许安全组内的云服务器访问目的地址的指定端口。
    • 如果“策略”设置为拒绝,表示拒绝安全组内的云服务器访问目的地址的指定端口。

    安全组规则匹配流量时,首先按照优先级进行排序,其次按照策略排序,拒绝策略高于允许策略,更多信息请参见流量匹配安全组规则的顺序

    允许

    类型

    目的地址支持的IP地址类型,如下:
    • IPv4
    • IPv6

    IPv4

    协议端口

    安全组规则中用来匹配流量的网络协议类型,目前支持TCP、UDP、ICMP和GRE协议。

    TCP

    安全组规则中用来匹配流量的目的端口,取值范围为:1~65535。

    在出方向规则中,表示安全组内实例访问外部地址的指定端口。

    端口填写支持下格式:
    • 单个端口:例如22
    • 连续端口:例如22-30
    • 多个端口:例如22,23-30,一次最多支持20个不连续端口组, 端口组之间不能重复。
    • 全部端口:为空或1-65535

    22或22-30

    目的地址

    在出方向规则中,用来匹配内部请求的目的地址。支持以下格式:
    • IP地址:表示目的地址为某个固定的IP地址。当目的地址选择IP地址时,您可以在一个IP地址框内同时输入多个IP地址,一个IP地址对应一条安全组规则。
      • 单个IP地址:IP地址/掩码。

        单个IPv4地址示例为192.168.10.10/32。

        单个IPv6地址示例为2002:50::44/128。

      • IP网段:IP地址/掩码。

        IPv4网段示例为192.168.52.0/24。

        IPv6网段示例为2407:c080:802:469::/64。

      • 所有IP地址:

        0.0.0.0/0表示匹配所有IPv4地址。

        ::/0表示匹配所有IPv6地址。

    • 安全组:表示目的地址为另外一个安全组,您可以在下拉列表中,选择当前账号下,同一个区域内的其他安全组。当安全组A内有实例a,安全组B内有实例b,在安全组A的出方向规则放通目的地址为安全组B的流量,则实例a访问实例b的内网请求被允许流出。
    • IP地址组:表示目的地址为一个IP地址组,IP地址组是一个或者多个IP地址的集合。您可以在下拉列表中,选择可用的IP地址组。对于安全策略相同的IP网段和IP地址,此处建议您使用IP地址组简化管理。

    IP地址:0.0.0.0/0

    描述

    安全组规则的描述信息,非必填项。

    描述信息内容不能超过255个字符,且不能包含“<”和“>”。

    -

  11. 出方向规则设置完成后,单击“确定”。

    返回出方向规则列表,可以查看添加的出方向规则。

检查安全组规则是否生效

在安全组规则中放开某个端口后,您还需要确保实例内对应的端口也已经放通,安全组规则才会对实例生效。

假设您在某台ECS上部署了网站,希望用户能通过HTTP(80)端口访问到您的网站,则您需要先在ECS所在安全组的入方向中,添加表4中的规则,放通HTTP(80)端口。
表4 安全组规则示例

方向

优先级

策略

类型

协议端口

源地址

入方向

1

允许

IPv4

自定义TCP: 80

IP地址:0.0.0.0/0

安全组规则添加完成后,您需要执行以下操作,检查云服务器内端口开放情况,并验证配置是否生效。
  1. 登录云服务器,检查云服务器端口开放情况。
    • 检查Linux云服务器端口

      执行以下命令,查看TCP 80端口是否被监听。

      netstat -an | grep 80

      若回显类似图3,说明80端口已开通。

      图3 Linux TCP 80端口验证结果
    • 检查Windows云服务器端口
      1. 通过“开始菜单 > 运行 > cmd”,打开命令执行窗口。
      2. 执行以下命令,查看TCP 80端口是否被监听。

        netstat -an | findstr 80

        若回显类似图4,说明TCP 80端口已开通。

        图4 Windows TCP 80端口验证结果
  2. 打开浏览器,在地址栏里输入“http://云服务器的弹性公网IP地址”。

    如果访问成功,说明安全组规则已经生效。