关于安全组的使用,为您提供以下最佳实践建议:
规划
您可以为安全组设置名称、描述,也可以设置安全组的标签、资源组,便于进行分类运维。建议您合理设置这些信息,方便快速识别安全组的用途,在管理较多安全组时更加清晰。
以白名单的方式使用安全组
即默认拒绝所有访问,添加允许规则来放通指定的端口范围和授权对象。
添加安全组规则时遵循最小授权原则
例如,开放Linux实例的22端口用于远程登录时,建议仅允许特定的IP访问,而非所有IP(0.0.0.0/0
)。
遵循最小权限原则
在不需要普通安全组内ECS实例互相内网互通时,将普通安全组的组内连通策略设置为组内隔离。
尽量保持单个安全组内规则的简洁
按照用途将规则维护在多个安全组中,并将实例关联到这些安全组。单个安全组的规则数量过多,会增加管理复杂度。安全组规则的健康检查,提供了检测单个安全组冗余规则的能力,详情请参见查看安全组是否存在冗余规则。
不同类型应用的实例加入不同的安全组,分别维护安全组规则
例如,将允许公网访问的实例关联到同一个安全组,仅放通对外提供服务的端口,例如80、443等,默认拒绝其他所有访问。避免在允许公网访问的实例上提供其他服务,例如MySQL、Redis等,建议将内部服务部署在不允许公网访问的实例上,并关联其他的安全组。
避免直接修改线上环境使用的安全组
可以先克隆一个安全组在测试环境调试,确保修改后实例流量正常,再对线上环境的安全组规则进行修改。
说明
如果您需要检测ECS常用端口是否被安全组规则放行,或者检测安全组规则是否允许特定IP与ECS网卡单向访问,您可以在自助问题排查下的安全组规则检测页签完成操作。具体操作,请参见安全组规则检测。
ECS实例关联了多个安全组,需要查看ECS实例的入方向或出方向的全部规则时,请参见查看ECS实例已加入的所有安全组中的规则。