
# 安全组概述
#### 安全组
安全组是一个逻辑上的分组，为具有相同安全保护需求并相互信任的云服务器、云容器、云数据库等实例提供访问策略。安全组创建后，用户可以在安全组中定义各种访问规则，当实例加入该安全组后，即受到这些访问规则的保护。
您在创建实例时（比如云服务器），必须将实例加入一个安全组，如果此前您还未创建任何安全组，那么系统会自动为您创建默认安全组并关联至该实例。除了默认安全组，您还可以根据业务需求创建自定义安全组并关联至实例。一个实例可以关联多个安全组，多个安全组按照优先级顺序依次匹配流量。
安全组中包括入方向规则和出方向规则，您可以针对每条入方向规则指定来源、端口和协议，针对出方向规则指定目的地、端口和协议，用来控制安全组内实例入方向和出方向的网络流量。以[图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-bms/zh-cn_image_0000001822515662.png "点击放大")
![](https://support.huaweicloud.com/usermanual-bms/public_sys-resources/note_3.0-zh-cn.png)
**您可以免费使用安全组资源，当前不收取任何费用。**
#### 安全组规则
- 安全组中包括入方向规则和出方向规则，用来控制安全组内实例的入方向和出方向的网络流量。
  - **入方向规则：**控制外部请求访问安全组内的实例，即流量流入实例。
  
  - **出方向规则：**控制安全组内实例访问外部的请求，即流量从实例流出。
   
- 安全组规则由协议端口、源地址/目的地址等组成，关键信息说明如下：
  - **策略：**支持允许或拒绝。当流量的协议、端口、源地址/目的地址成功匹配某个安全组规则后，会对流量执行规则对应的策略，允许或拒绝流量。
  
  - **优先级：**优先级可选范围为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地址的集合，对于安全策略相同的IP网段和IP地址，此处建议您使用IP地址组简化管理。
      
   
 
#### 安全组的使用限制
- 为了确保良好的网络性能体验，建议一个实例最多关联5个安全组。
- 建议一个安全组关联的实例数量不应超过6000个，否则会引起安全组性能下降。
- 在一个安全组中，对于入方向规则来说，源地址是安全组的规则数量+源地址是IP地址组的规则数量+端口是不连续端口号的规则数量 ≤ 120条，否则超过数量的安全组规则将不生效。当同时存在IPv4和IPv6类型的安全组规则时，两种类型的安全组规则单独计算，即IPv4规则和IPv6规则可以各有120条。 对于安全组出方向规则来说，目的地址和端口存在一样的限制。
  以安全组Sg-A的入方向IPv4规则为例，[表1]中提供了部分符合限制条件的规则供您参考。其中，当一条安全组规则同时符合多个限制时，比如规则A02即使用了不连续端口，又使用了安全组作为源地址，此时只占用一条配额。
   表1入方向安全组规则示例 
  | 规则编号  | 策略 | 类型   | 协议端口                  | 源地址                  |
  |:---|:---|:---|:---|:---|
  | 规则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 |
     
  
 
#### 实践建议
- 请您遵循白名单原则配置安全组规则，即安全组内实例默认拒绝所有外部的访问请求，通过添加允许规则放通指定的网络流量。
- 添加安全组规则时，请遵循最小授权原则。例如，放通22端口用于远程登录云服务器时，建议仅允许指定的IP地址登录，谨慎使用0.0.0.0/0（所有IP地址）。
- 请您尽量保持单个安全组内规则的简洁，通过不同的安全组来管理不同用途的实例。如果您使用一个安全组管理您的所有业务实例，可能会导致单个安全组内的规则过于冗余复杂，增加维护管理成本。
- 您可以将实例按照用途加入到不同的安全组内。例如，当您具有面向公网提供网站访问的业务时，建议您将运行公网业务的Web服务器加入到同一个安全组，此时仅需要放通对外部提供服务的特定端口，例如80、443等，默认拒绝外部其他的访问请求。同时，请避免在运行公网业务的Web服务器上运行内部业务，例如MySQL、Redis等，建议您将内部业务部署在不需要连通公网的服务器上，并将这些服务器关联至其他安全组内。
- 对于安全策略相同的多个IP地址，您可以将其添加到一个IP地址组内统一管理，并在安全组内添加针对该IP地址组的授权规则。当IP地址发生变化时，您只需要在IP地址组内修改IP地址，那么IP地址组对应的安全组规则将会随之变更，无需逐次修改安全组内的规则，降低了安全组管理的难度，提升效率。具体方法，请参见[使用IP地址组提升安全组规则管理效率](https://support.huaweicloud.com/usermanual-vpc/vpc_IPAddressGroup_0018.html)。
- 请您尽量避免直接修改已运行业务的安全组规则。如果您需要修改使用中的安全组规则，建议您先克隆一个测试安全组，然后在测试安全组上进行调试，确保测试安全组内实例网络正常后，再修改使用中的安全组规则，减少对业务的影响。具体方法，请参见[克隆安全组](https://support.huaweicloud.com/usermanual-vpc/vpc_SecurityGroup_0009.html)。
- 您在安全组内新添加实例，或者修改安全组的规则后，此时不需要重启实例，安全组规则会自动生效。 如果您的安全组规则配置完未生效，请参考[为什么配置的安全组规则不生效？](https://support.huaweicloud.com/vpc_faq/faq_security_0006.html)。
  
 
#### 相关链接
- [配置安全组规则](https://support.huaweicloud.com/usermanual-bms/zh-cn_topic_0028313245.html)
- [更改安全组](https://support.huaweicloud.com/usermanual-bms/bms_01_0065.html)
- [查看安全组](https://support.huaweicloud.com/usermanual-vpc/vpc_SecurityGroup_0011.html)
 
