You need to enable JavaScript to run this app.
导航

如何规划安全组

最近更新时间2024.01.04 16:52:18

首次发布时间2021.12.27 20:07:04

本文介绍在业务初期如何合理规划安全组,使您的系统更加便于调整。推荐您对不同的业务规划不同的安全组,并设置不同的安全组规则。

背景信息

网络初期配置为了减少工作量,通常会把所有的云服务器放到同一个安全组下,但随着后续业务的增加,网络系统进而变复杂,在进行安全组规则变更时,无法准确预估对业务带来的影响。因此,建议您从一开始就合理规划并根据业务区分安全组,设置相应的安全组规则。

规划原则

您在实际操作中,规划安全尽遵循以下原则,更多安全介绍,请参见安全组概述

  • 安全组作为白名单使用。

  • 授权须遵循最小授权原则。

  • 不同的应用、服务使用不同的安全组,例如Web Service和Database需要从属于不同的安全组。

  • 不同的服务类型使用不同的安全组,例如公网服务和内网服务的云服务器需要从属于不同的安全组。

  • 不需要访问公网的云服务器不分配公网IP。

  • 同类型的云服务器使用一个安全组,无需为每个云服务器配置一个独立的安全组。

  • 需要互相通信的云服务器使用同一个安全组。

  • 为安全组设置简洁、清晰、易识别的名称和描述信息,合理管理安全组。

  • 及时删除不再使用的安全组。

不同的应用使用不同的安全组

不同的应用所提供的服务有所不同,需要对外暴露的端口以及需要拒访问的端口也不尽相同,例如Web Service和Database。因此建议不同的应用尽量归属于不同的安全组,根据应用的需求配置安全组规则。

在后续新增应用时,也应该合理的规划安全组,以网段与安全组规则的协同方式,清晰的展示提供服务者与消费使用者之间的边界。

不同的环境使用不同的安全组

在实际开发生产中,为了更好的进行系统隔离,通常会构建一套线上生产环境和多套测试环境。测试环境会经常进行变更,为了避免对线上生产环境产生影响,建议不同的环境使用不同的安全组,并配置相应的安全组规则。

通过使用不同的安全组,对线上生产环境和测试环境分别限制访问端口及IP,变更测试环境不会影响线上生产环境的稳定性。此外,多套测试环境也可以使用不同的安全组进行访问控制,避免测试环境之间的相互影响。

不同的服务类型使用不同的安全组

为公网提供服务的云服务器,需要允许公网访问,因此云服务器所在安全组需对外暴露公网IP地址,但仅对内部提供服务的云服务器不应该对外暴露,因此公网服务类型的云服务器和内网服务类型的云服务器应该从属于不同的安全组。

  • 公网服务类型的云服务器所属安全组
    安全组规则需要采取最严格的限制,建议拒绝策略安全组规则的优先级高于允许策略安全组规则,且默认情况下应关闭所有的端口、协议,仅暴露需要对外提供服务的端口,并遵循端口最小化原则。

  • 内网服务类型的云服务器所属安全组
    应拒绝一切公网访问请求,拒绝策略的安全组规则优先级设置为最高。

端口最小化

在配置安全组访问规则的时候,建议采取白名单的方式,同时尽量遵循“最小授权原则”,即尽可能少地开放端口、尽可能少地暴露端口、尽可能少地配置公网IP。

使用跳板机

在云上使用跳板机对云上资源进行运维时,公网访问需要把访问方式暴露给公网,允许用户远程登录,但由于跳板机对云上资源有很高的访问权限,因此在跳板机所属安全组的访问规则中,应允许运维人员的公网IP地址对跳板机的SSH端口进行访问,拒绝其他IP地址的访问请求。

因此应该对跳板机的权限进行单独管理,以SSH为例,由于SSH端口为高危端口,建议将SSH服务的端口进行修改,如下图配置把SSH默认端口改为跳板机的SSH端口3722。
image

需要互通云服务器使用同一安全组

一个云服务器最多可加入5个安全组,一个安全组下的所有云服务器可互相通信,因此可把需要互通的云服务器加入同一个安全组,具体操作请参见安全组关联网卡

在已有多个安全组,并且安全组规则较为复杂的场景下,可以新建一个安全组,把需要互通的云服务器加入这个新的安全组,实现云服务器互通。但这也在一定程度上使得安全组的数量变多,安全组规则变得更加复杂,因此应在最初阶段,就合理规划各个云服务器出、入方向的请求。

为安全组设置合适的名称和描述

当业务较为复杂,使用较多的安全组时,合理设置每个安全组的名称、描述是非常必要的。合适的安全组名称就如同超市货架上的货物标签,能够帮助使用者准确、快速找到所需的安全组,因此安全组的名称要简洁、明确、易识别,安全组的描述要清晰、准确、全面。

及时删除不需要的安全组

安全组作为白名单使用,其中一条条的安全组规则,就相当于一个个白名单、黑名单,控制安全组内的云服务器的访问和被访问权限。当某个安全组不再使用时,请及时删除该安全组,防止后续在安全组下错误加入云服务器而造成的麻烦,具体操作请参见删除安全组

附录:变更安全组

如果您当前已经存在公网服务类型云服务器与其他服务类型的云服务器从属于同一个安全组,您可参照下方配置进行安全组变更。

假设已有的安全组为sg_inner。

  1. 整理当前安全组规则中,所有为提供公网服务放开的端口、协议。

  2. 创建一个新的自定义安全组sg_web,并为已排查出的端口添加安全组访问规则,允许对应的端口访问。具体操作可参见创建安全组添加安全组访问规则

  3. 在原安全组sg_inner中,添加一条访问规则,策略:允许,协议类型:ALL,源地址:安全组sg_web。

  4. 在云服务器控制台,单击提供公服务的云服务器名称,在详情页面单击主网卡名称,进入网卡概览页面。

  5. 单击“关联安全组”页签,然后单击“关联安全组”按钮,在选择安全组页面勾选sg_web,然后单击“确定”。

  6. 返回云服务器控制台,检查并确认云服务器流量、网络均正常。

  7. 参考步骤4进入网卡概览页面,单击“关联安全组”页签。

  8. 在关联安全组页面,单击sg_inner后的“解除关联”。

  9. 测试云服务器网络联通性,确认云服务器流量、网络均正常。
    如果检查发现云服务器无法正常工作,参考步骤4~步骤5云服务器配置原有的安全组sg_inner,检查sg_web中安全组规则放通的端口是否正确、全面,然后重新变更安全组。

  10. 若有多个云服务器,请参考步骤1~步骤9分别为多个云服务器变更安全组。