本文为您介绍安全组常用的规划原则。
安全组用于控制云服务器各网卡的流量出入。具备状态检测和数据包过滤能力,用于在云上划分安全域,是火山引擎提供的重要的网络安全隔离手段。
合理地规划安全组,可使您的业务流量易于管理且安全。若未规划,会使您的安全组维护困难且业务存在安全隐患。因此,建议您从一开始就合理规划并根据业务区分安全组,设置相应的安全组规则。
例如,如果将所有云服务器的网卡均关联至同一个安全组,那么部分云服务器必然会放通一些本不需要的IP地址和端口,从而存在安全隐患。
例如,如果为每台云服务器的网卡单独关联一个安全组,那么将会有大量安全组需要进行维护。这不但会产生大量重复的工作,而且在调整安全组规则时很容易出现遗漏,进而使得维护的难度大幅增加。
为避免因放通不必要的IP地址和端口而带来安全风险,您应当严格遵循最小授权原则,尽可能精准地放通IP地址和端口,谨慎放通流量,以保护云服务器安全。
示例: 当在云上使用跳板机对云上资源进行运维时,跳板机的访问方式会暴露在公网,允许运维用户远程登录。由于跳板机对云上资源具有很高的访问权限,所以在跳板机所使用的安全组规则中,应仅允许运维人员的公网IP地址对跳板机的SSH端口进行访问,拒绝其他IP地址的访问请求。
同时,因为SSH服务默认端口22属于高危端口,建议修改云上跳板机SSH服务的端口,以进一步提升安全性。
您可以根据云服务器网络通信的具体需求来划分安全组。对于具有相同需求的云服务器,可让其网卡关联同一安全组;而对于需求不同的云服务器,其网卡则应关联不同的安全组。
示例一:根据应用划分安全组
部署相同应用的云服务器,可让它们的网卡关联同一安全组;而部署需求不同应用的云服务器,它们的网卡则应关联不同的安全组。
示例二:根据环境划分安全组
在实际开发生产中,为实现系统隔离,通常构建线上生产环境和多套测试环境。因测试环境常变更,为避免影响线上生产环境,不同环境下的云服务器网卡应关联不同安全组并配置相应规则。这样可分别限制线上和测试环境的访问端口及IP,确保测试环境变更不影响线上稳定性,且多套测试环境也能避免相互影响。
示例三:根据网络服务类型划分安全组
需要公网访问的云服务器和仅需要私网访问的云服务器,它们的网卡应该关联不同的安全组。
如果云服务器的需求单一,仅使用一个安全组即可满足其需求。而当某些云服务器具有多种需求时,则其网卡可以同时关联多个安全组。单张云服务器的网卡最多可关联五个安全组,多个安全组的规则具有叠加性,就如同在一个安全组中添加多条安全组规则。当关联多个安全组时,若出现多条规则的IP地址段和端口相同的情况,则分为以下几种情形:
示例: 如果某一台云服务器既需要访问公网,又需要访问私网,还需要支持跳板机远程登录时,那么它的网卡可以关联三个安全组,分别为用于访问公网的安全组、用于访问私网的安全组、用于远程登录的安全组。
当云服务器需放通大段网段时,可配置拒绝策略拒绝其中一部分IP流量,在满足需求的同时提高安全性和可控性。应根据实际情况筛选需拒绝的IP范围,确保开放大段网段时仍能有效防范安全风险。
示例:云服务器向所有公网用户提供服务,在放通了全网段(0.0.0.0/0)后,可以使用配置拒绝策略的安全组,拒绝其中部分IP的恶意访问。
如果安全组规则A被安全组规则B包含,且优先级小于规则B,依据安全组匹配说明,规则A不会被匹配到,此时规则A就被视作冗余规则。您应当及时清除冗余的安全组规则,以保证安全组规则清晰简洁,便于管理。
安全组中的一条条规则如同一个个白名单和黑名单,能够控制安全组内云服务器网卡的访问流量。当某个安全组不再使用时,务必及时删除该安全组,以防止后续因错误关联云服务器的网卡而带来麻烦。