- 为了确保良好的网络性能体验,建议一个实例最多关联5个安全组。
- 默认情况下,一个安全组最多只允许拥有50条安全组规则。
- 默认情况下,一个云服务器或扩展网卡最多只能被添加到5个安全组中,安全组规则取并集生效。
- 建议一个安全组关联的实例数量不应超过6000个,否则有可能引起安全组性能下降,甚至造成安全组策略失效。
- 在一个安全组中,对于入方向规则来说,源地址是安全组的规则数量+源地址是IP地址组的规则数量+端口是不连续端口号的规则数量≤120条,否则超过数量的安全组规则将不生效。当同时存在IPv4和IPv6类型的安全组规则时,两种类型的安全组规则单独计算,即IPv4规则和IPv6规则可以各有120条。对于安全组出方向规则来说,目的地址和端口存在一样的限制。以安全组Sg-A的入方向IPv4规则为例,下表中提供了部分符合限制条件的规则供您参考。其中,当一条安全组规则同时符合多个限制时,比如规则A02既使用了不连续端口,又使用了安全组作为源地址,此时只占用一条配额。
规则编号 | 策略 | 类型 | 协议端口 | 源地址 |
---|---|---|---|---|
规则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 |
- 当您的组网中,ELB实例的监听器开启“获取客户端IP”功能时,来自ELB的流量将不受网络ACL和安全组规则的限制。比如规则已明确拒绝来自ELB实例的流量进入后端云主机,此时该规则无法拦截来自ELB的流量,流量依然会抵达后端云主机。
实践建议
- 请您遵循白名单原则配置安全组规则,即安全组内实例默认拒绝所有外部的访问请求,通过添加允许规则放通指定的网络流量。
- 添加安全组规则时,请遵循最小授权原则。例如,放通22端口用于远程登录云主机时,建议仅允许指定的IP地址登录,谨慎使用0.0.0.0/0(所有IP地址)。
- 请您尽量保持单个安全组内规则的简洁,通过不同的安全组来管理不同用途的实例。如果您使用一个安全组管理您的所有业务实例,可能会导致单个安全组内的规则过于冗余复杂,增加维护管理成本。
- 您可以将实例按照用途加入到不同的安全组内。例如,当您具有面向公网提供网站访问的业务时,建议您将运行公网业务的Web服务器加入到同一个安全组,此时仅需要放通对外部提供服务的特定端口,例如80、443等,默认拒绝外部其他的访问请求。同时,请避免在运行公网业务的Web服务器上运行内部业务,例如MySQL、Redis等,建议您将内部业务部署在不需要连通公网的云主机上,并将这些云主机关联至其他安全组内。
- 对于安全策略相同的多个IP地址,您可以将其添加到一个IP地址组内统一管理,并在安全组内添加针对该IP地址组的授权规则。当IP地址发生变化时,您只需要在IP地址组内修改IP地址,那么IP地址组对应的安全组规则将会随之变更,无需逐次修改安全组内的规则,降低了安全组管理的难度,提升效率。
- 请您尽量避免直接修改已运行业务的安全组规则。如果您需要修改使用中的安全组规则,建议您先克隆一个测试安全组,然后在测试安全组上进行调试,确保测试安全组内实例网络正常后,再修改使用中的安全组规则,减少对业务的影响。
- 您在安全组内新添加实例,或者修改安全组的规则后,此时不需要重启实例,安全组规则会自动生效。