# 安全组和安全组规则概述
#### 安全组
安全组是一个逻辑上的分组，为具有相同安全保护需求并相互信任的云服务器、云容器、云数据库等实例提供访问策略。安全组创建后，用户可以在安全组中定义各种访问规则，当实例加入该安全组后，即受到这些访问规则的保护。
您在创建实例时（比如云服务器），必须将实例加入一个安全组，如果此前您还未创建任何安全组，那么系统会自动为您创建[默认安全组](https://support.huaweicloud.com/usermanual-vpc/SecurityGroup_0003.html)并关联至该实例。除了默认安全组，您还可以根据业务需求创建自定义安全组并关联至实例。一个实例可以关联多个安全组，多个安全组按照优先级顺序依次匹配流量。
安全组中包括入方向规则和出方向规则，您可以针对每条入方向规则指定来源、端口和协议，针对出方向规则指定目的地、端口和协议，用来控制安全组内实例入方向和出方向的网络流量。以[图1]为例，在区域A内，某客户有一个虚拟私有云VPC-A和子网Subnet-A，在子网Subnet-A中创建一个云服务器ECS-A，并为ECS-A关联一个安全组Sg-A来保护ECS-A的网络安全。
- 安全组Sg-A的入方向存在一条放通ICMP端口的自定义规则，因此可以通过个人PC (计算机)**ping**通ECS-A。但是安全组内未包含允许SSH流量进入实例的规则，因此您无法通过个人PC远程登录ECS-A。
- 当ECS-A需要通过EIP访问公网时，由于安全组Sg-A的出方向规则允许所有流量从实例流出，因此ECS-A可以访问公网。
图1安全组架构图   
![](https://support.huaweicloud.com/usermanual-vpc/zh-cn_image_0000001822515662.png)
![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
**您可以免费使用安全组资源，当前不收取任何费用。**
#### 特性讲解视频
本视频为您介绍VPC安全组和安全组规则，包括安全组的作用、安全组规则的组成、默认安全组的说明以及流量匹配安全组规则的顺序等信息。
<video controls="controls" preload="none" id="object20738512134" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/vpc-video/1750752217542129951.mp4" title="VPC安全组和安全组规则介绍" poster="https://support.huaweicloud.com/usermanual-vpc/zh-cn_image_0000002404135313.jpg" style="width:100%;height:auto;max-width:600px"></video>
 #### 安全组规则
- 安全组中包括入方向规则和出方向规则，用来控制安全组内实例的入方向和出方向的网络流量。
  - **入方向规则：**控制外部请求访问安全组内的实例，即流量流入实例。
  
  - **出方向规则：**控制安全组内实例访问外部的请求，即流量从实例流出。
   
- 安全组规则由协议端口、源地址/目的地址等组成，关键信息说明如下：
  - **策略：**支持允许或拒绝。当流量的协议、端口、源地址/目的地址成功匹配某个安全组规则后，会对流量执行规则对应的策略，允许或拒绝流量。
  
  - **优先级：** 优先级可选范围为1-100，数字越小，规则优先级级别越高。安全组规则匹配流量时，首先按照优先级进行排序，其次按照策略排序，拒绝策略高于允许策略，更多信息请参见[流量匹配安全组规则的顺序]。
  
  - **类型：**支持设置IPv4和IPv6协议的规则。
  
  - **协议端口：** 包括网络协议类型和端口范围。
    - **网络协议：** 匹配流量的协议类型，支持TCP、UDP、ICMP和GRE协议。
      - **TCP协议**：擅长可靠传输，适用于远程登录、网页浏览、邮件传输和文件传输等对数据完整性要求高的场景。
      
      - **UDP协议：**传输速度快，适用于在线游戏、视频会议等对速度要求高的应用，减少数据传输的延迟，确保体验的流畅性。
      
      - **ICMP协议：**用于网络设备间通信，传递控制信息，如使用ping命令检测网络设备之间的连通性、生成错误报告供运维使用、传递诊断信息用于分析优化网络等。
      
      - **GRE协议：**通用性强，用于封装和传输不同网络协议数据，实现跨网络传输，如封装IP数据包。
       
    
    - **端口范围：**匹配流量的目的端口，取值范围为：1～65535。
     
  
  - **源地址** 或**目的地址** ：在入方向中，匹配流量的源地址。在出方向中，匹配流量的目的地址。
    您可以使用IP地址、安全组、IP地址组作为源地址或者目的地址。
    - IP地址：某个固定的IP地址或者网段，支持IPv4和IPv6地址。比如：192.168.10.10/32（IPv4地址）、192.168.1.0/24（IPv4网段）、2407:c080:802:469::/64（IPv6网段）
    
    - 安全组：目标安全组和当前安全组位于同一区域，表示流量匹配目标安全组内所有实例的私有IP地址。比如：当安全组A内有实例a，安全组B内有实例b，在安全组A的入方向规则中，放通源地址为安全组B的流量，则来自实例b的内网访问请求被允许进入实例a。
    
    - IP地址组：[IP地址组](https://support.huaweicloud.com/usermanual-vpc/vpc_IPAddressGroup_0002.html)是一个或者多个IP地址的集合，对于安全策略相同的IP网段和IP地址，此处建议您使用IP地址组简化管理。
      
   
 
#### 安全组及规则的工作原理
- 安全组是有状态的。如果您从实例发送一个出站请求，且该安全组的出方向规则是放通的话，那么无论其入方向规则如何，都将允许该出站请求的响应流量流入。同理，如果该安全组的入方向规则是放通的，那无论出方向规则如何，都将允许入站请求的响应流量可以流出。
- 安全组使用连接跟踪来标识进出实例的流量信息，入方向安全组的规则变更，对原有流量立即生效。出方向安全组规则的变更，不影响已建立的长连接，只对新建立的连接生效。
  当您在安全组内增加、删除、更新规则，或者在安全组内添加、移出实例时，详细说明如下：
  - 由入方向流量建立的连接，系统会根据[表1]中的场景，自动清理已有长连接对应的连接跟踪，即让连接跟踪提前老化，然后重新建立连接并匹配新的安全组入方向规则。
    - 若安全组规则允许该连接对应的流量通过，则连接能够成功建立，网络通信不会受影响。
    
    - 若安全组规则拒绝该连接对应的流量通过，则连接无法再次建立，网络通信将中断。
    
    
     表1连接跟踪的清理场景及清理策略说明 
    | 操作场景             | 连接跟踪的清理策略                                                                                                                                                                                                                                                                                                                                                          |
    |:---|:---|
    | 在安全组A内**添加实例**  | - 对于安全组A内新添加的实例，清理该实例入方向的连接跟踪  - 当其他安全组（例如安全组B）的入方向中存在**拒绝**安全组A访问的规则，则清理安全组B内所有实例的入方向连接跟踪   |
    | 在安全组A内**移除实例**     | - 清理安全组A内所有实例的入方向连接跟踪  - 当其他安全组（例如安全组B）的入方向中存在**允许**安全组A访问的规则，则清理安全组B内所有实例的入方向连接跟踪               |
    | 在安全组A内**添加规则**     | 当在**入方向或者出方向** 中**添加** **拒绝访问**的规则，则清理安全组A内所有实例的入方向连接跟踪                                                                                                                                                                                                                                                                                                             |
    | 在安全组A内**删除规则**   | 当在入方向中**删除允许** **访问**的规则，则清理安全组A内所有实例的入方向连接跟踪                                                                                                                                                                                                                                                                                                                      |
    | 在安全组A内**修改规则**   | 当在入方向中修改规则的优先级、策略、协议端口或者源地址时，则清理安全组A内所有实例的入方向连接跟踪                                                                                                                                                                                                                                                                                                                   |
    | 在安全组A内**启用规则**  | 当在**入方向或者出方向** 中**启用** **拒绝访问**的规则，则清理安全组A内所有实例的入方向连接跟踪                                                                                                                                                                                                                                                                                                           |
    | 在安全组A内**停用规则**    | 当在入方向中**停用允许** **访问**的规则，则清理安全组A内所有实例的入方向连接跟踪                                                                                                                                                                                                                                                                                                                     |
    | 修改IP地址组内的IP地址条目 | 当安全组A内的入方向规则中，存在**关联IP地址组的规则** ，则**添加或者删除该IP地址组条目**时，会清理安全组A内所有实例的入方向连接跟踪                                                                                                                                                                                                                                                                                         |
       
    
  
  - 由出方向流量建立的连接，已建立的长连接不会断开，依旧遵循原有安全组规则。出方向流量新建立的连接，将会匹配新的安全组出方向规则。
    
![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
**对于已建立的长连接，流量断开后，不会立即建立新的连接，需要超过连接跟踪的老化时间后，才会新建立连接并匹配新的规则。**比如，对于已建立的ICMP协议长连接，当流量中断后，需要超过老化时间30s后，将会新建立连接并匹配新的规则，详细说明如下：
- **不同协议的连接跟踪老化时间不同**，比如已建立连接状态的TCP协议连接老化时间是600s，ICMP协议老化时间是30s。对于除TCP和ICMP的其他协议，如果两个方向都收到了报文，连接老化时间是180s，如果只是单方向收到了报文，另一个方向没有收到报文，则连接老化时间是30s。
- **TCP协议处于不同状态下的连接老化时间也不相同**，比如TCP连接处于ESTABLISHED（连接已建立）状态时，老化时间是600s，处于FIN-WAIT（连接即将关闭）状态时，老化时间是30s。
 
- 安全组规则遵循白名单原理，当在规则中没有明确定义允许或拒绝某条流量时，安全组一律拒绝该流量流入或者流出实例。
  - 在入方向中，当请求匹配上安全组中入方向规则的源地址，并且策略为"允许"时，允许该请求进入，其他请求一律拦截。因此，默认情况下您一般不用在入方向配置策略为"拒绝"的规则。 [表2]中的入方向规则，确保安全组内实例内网网络互通，不建议您删除或者修改该安全组规则。
    
  
  - 在出方向中，[表2]中的出方向规则允许所有流量从安全组内实例流出，即实例可访问外部任意IP和端口。如果您删除了该规则，则安全组内的实例无法访问外部，请您谨慎操作。
     表2安全组规则说明 
    | 方向  | 策略   | 类型   | 协议端口  | 源地址/目的地址       |
    |:---|:---|:---|:---|:---|
    | 入方向 | 允许   | IPv4  | 全部   | 源地址：当前安全组      |
    | 入方向   | 允许  | IPv6 | 全部    | 源地址：当前安全组      |
    | 出方向  | 允许  | IPv4  | 全部 | 目的地址：0.0.0.0/0 |
    | 出方向  | 允许 | IPv6    | 全部 | 目的地址：::/0     |
       
    
   
 
 #### 流量匹配安全组规则的顺序
一个实例可以关联多个安全组，并且一个安全组内可以包含多个安全组规则。安全组规则匹配流量时，首先按照优先级进行排序，其次按照策略匹配，拒绝策略高于允许策略。如[图2]所示，以入方向的流量为例，实例的网络流量将按照以下原则匹配安全组规则，入方向和出方向的流量匹配顺序相同。
1. 首先，流量按照安全组的顺序进行匹配。您可以自行调整安全组顺序，安全组序号越小，表示优先级越高。 比如，安全组A的序号为1，安全组B的序号为2，安全组A的优先级高于安全组B，流量优先匹配安全组A内的入方向规则。
   
2. 其次，流量按照安全组规则的优先级和策略进行匹配。
   1. 先按照安全组规则优先级匹配，优先级的数字越小，优先级越高。 比如安全组规则A的优先级为1，安全组规则B的优先级为2，安全组规则A的优先级高于安全组规则B，流量优先匹配安全组规则A。
      
   
   2. 安全组规则优先级相同的情况下，再按照策略匹配，拒绝策略高于允许策略。
    
3. 流量按照协议端口和源地址，遍历了所有安全组内的入方向规则。
   - 如果成功匹配某个规则，则执行以下操作：
     - 如果规则的策略是允许，则允许该流量访问安全组内实例。
     
     - 如果规则的策略是拒绝，则拒绝该流量访问安全组内实例。
      
   
   - 如果未匹配上任何规则，则拒绝该流量访问安全组内的实例。
    
图2安全组匹配顺序   
![](https://support.huaweicloud.com/usermanual-vpc/zh-cn_image_0000001831115160.png)
 #### 安全组配置示例
您可以在安全组内放通指定IP地址，允许指定IP地址访问安全组内实例，或者在某个安全组内放通另外一个安全组，实现不同安全组内的实例内网互通。通过安全组规则，您可以灵活控制组网内流量的走向，以确保您的网络安全，以下为您提供了典型的安全组应用示例。
- [控制外部指定IP地址或安全组对实例的访问]
  如[图3]所示，在VPC-X中有两个子网Subnet-A和Subnet-B，Subnet-A中的ECS承载同一类业务，需要相同的网络连接请求，因此均关联至安全组Sg-A。同理，Subnet-B中的ECS均关联至另外一个安全组Sg-B。
  - 安全组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网络互通。
  
  - 两个安全组的出方向规则允许所有流量从安全组内实例流出。
  
  
  图3控制外部指定IP地址或安全组对实例的访问   
  ![](https://support.huaweicloud.com/usermanual-vpc/zh-cn_image_0000001822862656.png)
  ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
  更多安全组规则配置示例，请参见[安全组配置示例](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0081124350.html)。
- [控制虚拟IP访问安全组内实例]
  如果您通过中间网络实例在不同子网的实例之间转发流量，比如[图4]中，子网Subnet-A的ECS通过虚拟IP和子网Subnet-B的ECS互相通信。由于存在中间网络实例，此时安全组规则的源地址选择实例所在的安全组时，无法放通中间网络实例转发的流量，源地址必须设置成中间网络实例的私有IP地址或者子网网段。
  在VPC-X中有两个子网Subnet-A和Subnet-B，Subnet-A中的ECS关联至安全组Sg-A，Subnet-B中的ECS关联至安全组Sg-B。通过虚拟IP将Subnet-A中的ECS搭建成Keepalived高可用集群，后端服务器ECS-A01和ECS-A02形成主备模式，对外使用虚拟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。
     
  
  
  图4控制虚拟IP访问安全组内实例   
  ![](https://support.huaweicloud.com/usermanual-vpc/zh-cn_image_0000001876360713.png)
  ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
  更多安全组规则配置示例，请参见[安全组配置示例](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0081124350.html)。
- [控制对等连接两端VPC内的实例互访]
  如[图5]所示，在区域A内，通过VPC对等连接连通VPC-A和VPC-B之间的网络。对等连接路由配置完成后，子网Subnet-A01和子网Subnet-B01之间网络已连通。但是由于两个子网内的ECS分别关联了不同的安全组，此时ECS之间仍然网络不通，您还需要放通安全组Sg-A和Sg-B的网络，才可以实现对等连接两端的ECS网络互通。
  - 在安全组Sg-A中，规则A01允许来自Sg-B内实例的流量访问Sg-A内的实例，源地址为安全组Sg-B。
  
  - 在安全组Sg-B中，规则B01允许来自Sg-A内实例的流量访问Sg-B内的实例，源地址为安全组Sg-A。
  
  
  图5控制对等连接两端VPC内的实例互访   
  ![](https://support.huaweicloud.com/usermanual-vpc/zh-cn_image_0000001865987924.png)
  ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
  更多安全组规则配置示例，请参见[安全组配置示例](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0081124350.html)。
#### 安全组配置流程
图6安全组配置流程   
![](https://support.huaweicloud.com/usermanual-vpc/zh-cn_image_0000001695317581.png)
表3安全组配置流程说明 
| 序号  | 步骤       | 说明                                                                                                                                                                       | 操作指导                                                                                  |
|:---|:---|:---|:---|
| 1  | 创建安全组    | 创建安全组时候，您可以使用系统提供的规则。预置的部分安全组规则，详细信息请参见[安全组模板说明](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013748715.html#zh-cn_topic_0013748715__table117828131111)**。** | [创建安全组](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013748715.html)  |
| 2  | 配置安全组规则   | 安全组创建完成后，如果模板里面的规则不能满足业务要求，您还可以在安全组中添加新的安全组规则，或者修改已有的安全组规则。                                                                                                                | [添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)    |
| 3 | 在安全组中添加实例 | 创建实例的时候，会自动将实例加入一个安全组内，实例将会受到安全组的保护。 如果一个安全组无法满足您的要求，您可以将实例加入多个安全组。                                                                | [在安全组中添加或移出实例](https://support.huaweicloud.com/usermanual-vpc/SecurityGroup_0017.html) |
   
 #### 安全组的使用限制
- 为了确保良好的网络性能体验，建议一个实例最多关联5个安全组。
- 建议一个安全组关联的实例数量不应超过6000个，否则会引起安全组性能下降。
- 在一个安全组中，对于入方向规则来说，源地址是安全组的规则数量+源地址是IP地址组的规则数量+端口是不连续端口号的规则数量 ≤ 120条，否则超过数量的安全组规则将不生效。当同时存在IPv4和IPv6类型的安全组规则时，两种类型的安全组规则单独计算，即IPv4规则和IPv6规则可以各有120条。 对于安全组出方向规则来说，目的地址和端口存在一样的限制。
  以安全组Sg-A的入方向IPv4规则为例，[表4]中提供了部分符合限制条件的规则供您参考。其中，当一条安全组规则同时符合多个限制时，比如规则A02即使用了不连续端口，又使用了安全组作为源地址，此时只占用一条配额。
   表4入方向安全组规则示例 
  | 规则编号     | 策略  | 类型  | 协议端口                  | 源地址               |
  |:---|:---|:---|:---|:---|
  | 规则A01  | 允许     | IPv4 | 全部                     | **当前安全组：Sg-A**      |
  | 规则A02 | 允许    | IPv4   | **TCP: 22,25,27**    | **其他安全组：Sg-B**     |
  | 规则A03  | 允许  | IPv4  | TCP: 80-82              | **IP地址组：ipGroup-A** |
  | 规则A04  | 允许 | IPv4    | **TCP:** **22-24,25** | IP地址: 192.168.0.0/16 |
     
  
- **如果您添加安全组规则时，使用IP地址组或者不连续端口，那么该安全组规则对不同规格云服务器的生效情况存在差异，为了避免您的安全组规则不生效，请您查看[表5]了解详情。**
   表5安全组规则限制 
  | 安全组规则                             | 云服务器类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  |:---|:---|
  | **添加安全组规则时，"源地址"和"目的地址"可选择"IP地址组"** | **不支持的X86云服务器规格如下：** - 通用计算型（S1型、C1型、C2型 ）  - 内存优化型（M1型）  - 高性能计算型（H1型）  - 磁盘增强型（ D1型）  - GPU加速型（G1型、G2型）  - 超大内存型（E1型、E2型、ET2型）   |
  | **添加安全组规则时，"协议端口"可配置为不连续端口号**        | **不支持的X86云服务器规格如下：** - 通用计算型（S1型、C1型、C2型 ）  - 内存优化型（M1型）  - 高性能计算型（H1型）  - 磁盘增强型（ D1型）  - GPU加速型（G1型、G2型）  - 超大内存型（E1型、E2型、ET2型）                                                                                                                                                                                                                                                              |
  | **添加安全组规则时，"协议端口"可配置为不连续端口号**        | **不支持的鲲鹏云服务器规格：只有Kai1** 如果您在**Kai1**鲲鹏云服务器中添加安全组规则时，使用了不连续端口号，那么除了该条规则不会生效，该规则后的其他规则也不会生效。比如： 您先配置了安全组规则A（不连续端口号22,24），再配置了下一条安全组规则B（独立端口号9096），则安全组规则A和B均不会生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
     
  ![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
  - X86云服务器规格详情，请参见[规格清单（X86）](https://support.huaweicloud.com/productdesc-ecs/zh-cn_topic_0159822360.html)。
  
  - 鲲鹏云服务器规格详情，请参见[规格清单（鲲鹏）](https://support.huaweicloud.com/productdesc-ecs/ecs_01_0066.html)。
    
- **当您的组网中存在以下情况时，来自ELB和VPCEP的流量不受网络ACL和安全组规则的限制。**
  - **ELB实例的监听器开启"获取客户端IP"功能时，不受限制。**
    **比如规则已明确拒绝来自ELB实例的流量进入后端云服务器，此时该规则无法拦截来自ELB的流量，流量依然会抵达后端云服务器。**
    
  
  - **VPCEP实例类型为"专业型"时，不受限制。**
   
 
 #### 安全组应用指导
在云上业务部署过程中，合理配置安全组规则是保障业务安全的关键环节。以下提供体系化的安全组应用指导，帮助您构建安全可靠的网络防护体系。
1. **分析业务需求，规划安全组**
   建议您先对业务架构进行全面分析，明确对外公开服务与内部使用的服务，再依据不同安全需求制定差异化安全组策略。
   - **使用不同安全组隔离公网与内网云服务器**
     **建议将公网服务与内网服务的云服务器，划分至不同安全组以实现网络隔离防护。** **安全组规则配置需始终遵循 "最小开放" 原则，即默认关闭所有端口与协议，仅按需开放业务所需服务端口。**
     当您有面向公网的网站访问业务，建议将运行公网业务的Web服务器归入同一安全组，仅需放通80、443等对外服务的特定端口，默认拒绝外部其他访问请求。同时，请勿在公网Web服务器上运行内部业务，尤其MySQL、Redis等数据库服务，建议将其部署在无公网访问权限的云服务器上，并将这些云服务器关联至其他安全组，通过安全组规则授权其他安全组访问数据库，避免了公网暴露的风险。
     
   
   - **不同操作系统/不同应用的云服务器，建议使用不同安全组**
     依操作系统和应用差异，将云服务器划分至不同安全组，是实现精细化访问控制的基础。以常见系统为例，Linux云服务器通常需开放SSH (22)端口用于远程管理，Windows云服务器则需开放远程桌面RDP (3389)端口。需要特别注意的是，当云服务器的系统镜像相同，但是提供的应用服务不同时，那么这些云服务器也应该归属不同的安全组，这样可以实现更好的安全隔离和管理灵活性。
     
   
   - **应用于不同环境的云服务器，需划分至不同安全组**
     为保障系统稳定性和安全性，生产环境与测试环境的云服务器必须采用完全独立的安全组配置。通过安全组的访问控制功能，可限制不同环境间的网络连通性，避免测试环境的变更意外影响到生产环境。同时，对于不同测试环境（如开发测试、集成测试等）内的云服务器，也建议分配不同的安全组，防止多套测试环境之间相互干扰，提升开发和测试效率。
     
   
   - **公网访问管控** **，无需公网访问的云服务器不分配EIP**
     华为云提供了多种安全可靠的公网访问解决方案，**首先应当遵循"非必要不分配"的原则，尽量避免直接为云服务器分配EIP**。
     - 当您只需要登录ECS，在不采用EIP的情况下，建议优先使用云堡垒机、CloudShell和VNC等安全通道实现。
     
     - 当业务需面向公网提供访问服务，且您拥有多台云服务器时，建议通过ELB服务实现公网流量负载均衡，可以避免单点故障、提升服务可用性，又能减少安全暴露风险。
     
     - 对于云服务器需要主动访问公网的场景，优先推荐使用 NAT 网关服务，可为VPC内无EIP的云服务器提供公网访问能力，仅需配置SNAT规则，即可实现多台云服务器共享一个EIP访问公网。
      
    
2. **配置安全组规则**
   - **默认安全组策略**
     若您未创建过任何安全组，首次使用安全组时，系统会自动为您创建一个默认安全组，以方便后续使用。**默认安全组仅确保安全组内实例互通，默认拒绝所有外部请求进入实例** ，详情请参见[默认安全组概述](https://support.huaweicloud.com/usermanual-vpc/SecurityGroup_0003.html)。
     
   
   
   
   - **不同安全组默认内网隔离**
     同一账号下的云服务器如果属于不同的安全组，其内网访问默认是相互隔离的，无法直接访问。
     
   
   
   
   - **安全组规则采用白名单原则**
     安全组规则采用严格的白名单原则，这是构建安全防护体系的重要基础。请您遵循白名单原则配置安全组规则，即安全组内实例默认拒绝所有外部的访问请求，通过添加允许规则放通指定的网络流量。在开放端口时，应当严格控制开放范围，只开放业务必需的最小端口集合。
     
   
   - **遵循最小授权原则配置安全组规则**
     添加安全组规则时，请遵循最小授权原则。例如，放通SSH (22)或者RDP (3389)端口用于远程登录云服务器时，建议仅允许指定的IP地址登录，谨慎使用0.0.0.0/0（所有IP地址）。
     
   
   
   
   - **通过IP地址组简化安全组规则管理**
     对于安全策略相同的多个IP地址，您可以将其添加到一个IP地址组内统一管理，并在安全组内添加该IP地址组的授权规则。后续IP地址变化时，您只需要在IP地址组内修改IP地址，则IP地址组对应的安全组规则将会随之变更，无需逐次修改安全组内的规则，提升效率。详情请参见[使用IP地址组提升安全组规则管理效率](https://support.huaweicloud.com/usermanual-vpc/vpc_IPAddressGroup_0018.html)。
     
   
   - **典型服务端口参考**
     各类应用服务通常都使用标准的通信端口，您需要根据实际业务需求，在安全组中放通对应的端口，查看[ECS常用端口](https://support.huaweicloud.com/usermanual-vpc/SecurityGroup_0002.html)。
     
    
3. **持续维护安全组及规则**
   随着业务的不断发展与变化，原本配置的安全组及安全组规则可能不再适配新业务场景。为此，建议定期审视当前架构设计，并结合最新的安全需求进行针对性调整。修改安全组时，为避免因误操作影响线上业务连续性，请您尽量不要直接修改使用中的安全组规则。建议先克隆测试安全组，在测试安全组上完成调试并确认实例网络正常后，再修改使用中的安全组规则，减少对业务的影响。具体方法，请参见[克隆安全组](https://support.huaweicloud.com/usermanual-vpc/vpc_SecurityGroup_0009.html)。
   
 
