安全组规则用来控制ECS实例的出入站流量,适用于允许或拒绝特定网络流量、封锁不必要的端口、限制特定协议的流量和配置应用程序访问权限等使用场景。本文介绍安全组规则的添加、修改、查询、删除和导入导出操作。
在添加安全组规则之前,请了解以下内容: 安全组的入方向规则控制ECS实例入站的流量,出方向规则控制ECS实例出站的流量。ECS 实例关联的多个安全组规则将按固定的策略排序,共同决定是否放行实例出入站的流量。 安全组能力概述和使用建议,请参见安全组。 除了自定义的安全组规则,安全组还有一些不可见的默认访问控制规则,会影响流量的允许或拒绝,请参见普通安全组与企业级安全组。 安全组规则的构成和排序策略,请参见安全组规则。 安全组规则有数量限制,您应尽量保持规则的精简,请参见安全组使用限制。 安全组出入方向规则包含授权策略、优先级、协议类型、端口范围、授权对象。当流量成功匹配授权对象、端口和协议类型时,表示流量匹配到安全组规则,才会根据优先级和授权策略匹配,决定流量是否被允许访问。否则流量表示未匹配到安全组规则,遵循安全组的兜底策略。 授权对象:入方向规则中匹配流量的源地址,出方向规则中匹配流量的目的地址。支持配置IP地址(可选择多个)、安全组、前缀列表。 如果授权对象选择安全组和前缀列表,表示选择安全组和前缀列表中所有的IP地址的访问权限受这条安全组规则限制。 如果您想实现在不同安全组的资源之间的网络互通,您应使用安全组方式授权。对于内网访问,您应使用源安全组授权,而不是CIDR网段授权。 对于经典网络类型的ECS实例,阿里云默认不开启任何内网的入方向规则。为了安全考虑,不建议开启任何基于CIDR网段的授权。 端口范围:匹配流量的端口。了解典型应用的端口及其对应的场景示例,请参见常用端口。 协议类型:匹配流量的协议类型。 TCP协议主要适用于高可靠性的应用,如网页浏览、电子邮件传输、远程登录、上传下载文件等。 UDP协议主要适用于速度比准确性更重要的应用,如在线游戏、视频会议等。 ICMP协议主要适用于在网络设备之间传递控制信息,如使用ping命令、错误报告、诊断信息等。 GRE协议主要适用于安全性高的应用,通过GRE可以跨越不同的网络类型(如IP over IP)安全地传输数据。 优先级:匹配流量的优先级,最高优先级为1。 对于优先级不同的规则,流量先匹配优先级高的规则,如果成功匹配到优先级高的规则,将会对流量执行规则授权策略指定的动作,不会再去匹配优先级低的规则。 对于优先级相同的规则,只是授权策略不同时,优先匹配拒绝策略,再匹配允许策略。 授权策略:匹配流量的授权动作是允许还是拒绝。 重要 安全组规则中配置的端口,您需要确认该端口对应的应用处于启动状态,且端口需要监听到0.0.0.0上。如何查看当前端口状态,请参见检查服务状态及端口监听状态。 使用ECS控制台 使用API 登录ECS管理控制台。 在左侧导航栏,选择 。 在页面左侧顶部,选择目标资源所在的资源组和地域。 找到目标安全组,在操作列单击管理规则,添加出入方向的安全组规则。 方式一:快速添加安全组规则 适用于快速设置常用的TCP协议规则,您单击快速添加后,只需要设置授权策略、授权对象,并选中一个或多个端口便能完成。 如果快速添加对话框中端口范围不包含您需要放通或者拒绝的端口,您可以先勾选一个端口创建出一条安全组规则,然后修改这条规则的端口范围等。也可以通过方式二:手动添加安全组规则,直接设置需要的端口。 方式二:手动添加安全组规则 您需要设置授权策略、优先级、协议类型、端口范围、授权对象等信息。具体操作步骤如下: 单击手动添加。 在规则列表中,配置新增的安全组规则,配置完成后,单击操作列中的保存。 单条规则如何设置,请参见安全组规则。 修改安全组规则后,新的安全组规则对安全组中的ECS实例立即生效,您可能需要监控网络流量和连接情况,以确保修改后的规则满足实际业务需求,并维持网络安全。更多信息,请参见什么是云监控和网络分析与监控。 使用ECS控制台 使用API 在操作列中的管理规则。 找到需要修改的安全组规则,单击操作列中的编辑,进行修改,完成后,单击保存。 通过健康检查功能检测安全组中的冗余规则,可以帮助您简化安全组配置,减少管理工作量,提高网络管理的方便性和效率,同时降低安全漏洞的风险。 使用ECS控制台 使用API 方式一:查看单个安全组的规则 在操作列中的管理规则。 选择安全组规则所属的方向,可以查询到各自分类的安全组规则。 说明 在安全组规则列表上方的搜索框中输入端口或授权对象,能够快速搜索出符合条件的安全组规则。 方式二:查看ECS实例已加入的所有安全组中的规则 在 在安全组页签下,查看该实例加入的所有安全组。 单击操作列管理规则,逐个查询所有安全组的规则。 在删除安全组规则之前,请确保您了解此操作可能带来的影响。避免因误删而导致不必要的网络安全问题。如果在删除安全组规则后发现仍然需要使用该规则,您可以重新创建一条新的规则来替代它。 使用ECS控制台 使用API 在操作列中的管理规则。 找到需要删除的安全组规则,单击操作列中的删除。 在弹出的对话框中阅读提示信息,确认无误后,单击确定。 安全组的健康检查功能用于检查单个安全组中是否存在冗余规则。例如,安全组规则A的所有条件被规则B完全包含,并且规则A的优先级小于等于规则B的优先级,则规则A被认定为冗余规则。如果存在冗余规则,请清除冗余规则,避免出现安全组规则数量达到上限影响安全组的使用。 说明 每个安全组以及ECS实例的每张弹性网卡可以包含的安全组规则数量有限。有关安全组规则的使用限制及配额,请参见安全组使用限制。 使用ECS控制台 在操作列中的管理规则。 在访问规则区域,单击 在健康检查对话框中确认是否存在冗余规则。 如下图所示,表示该安全组中存在两条冗余规则。 选中冗余规则,然后单击确定,可对冗余规则进行删除。 ECS控制台支持安全组规则导出和导入功能,适用于安全组规则备份、恢复和迁移等使用场景。 在导入安全组之前,您需要符合如下限制,否则将会有导入失败的风险: 安全组规则的优先级范围1~100,大于100的优先级需要先删除,导入后再重新创建。 ECS控制台支持将安全组规则导出为JSON或CSV文件。请确保您使用的文件格式正确,并且遵循了阿里云的安全组规则文件命名规则。 导入时建议单次导入规则数量不超过200条。 在跨地域导入规则时,不支持安全组规则中授权对象为安全组和前缀列表。 使用ECS控制台 在操作列中的管理规则。 在访问规则区域,选择对应操作进行管理。 JSON格式 JSON文件命名规则示例为: 假设 CSV格式 CSV文件命名规则示例为: 假设 导入安全组规则 单击 如果存在导入失败的规则,您可以将光标移到警告图标上查看失败原因。 导出安全组规则 单击 关于安全组配置、安全组规则设定、主机处罚与解禁流程、资源限额管理等常见问题,请参见安全FAQ。 关于协议类型和端口范围的问题,请参见常用端口、修改服务器默认远程端口。 将云资源(ECS实例,弹性网卡)加入新的安全组中,请参见安全组与ECS实例关联的管理、安全组与弹性网卡关联的管理。 根据业务需要,如果需要修改安全组的组内连通策略,请参见修改普通安全组的组内连通策略。 安全组规则配置最佳实践与应用案例: 如果服务器开启了防火墙,并设置了屏蔽外界访问的规则,那么在远程访问该服务器时,可能会导致访问失败。开启和关闭系统防火墙的最佳实践: 其他最佳实践:操作前须知
使用场景
添加安全组规则
修改安全组规则
查询安全组规则
删除安全组规则
检查安全组是否存在冗余规则
。
导入导出安全组规则
ecs_${region_id}_${groupID}.json
regionID
是cn-qingdao
,groupID
是sg-123
,导出的JSON文件名称则是ecs_cn-qingdao_sg-123.json
。ecs_sgRule_${groupID}_${region_id}_${time}.csv
regionID
是cn-qingdao
,groupID
是sg-123
,time
是2020-01-20
,导出的CSV文件名称则是ecs_sgRule_sg-123_cn-qingdao_2020-01-20.csv
。,在导入安全组规则对话框中,单击选择文件,然后选择本地的JSON或CSV文件。然后单击开始导入。
,并选择保存的文件格式,下载并保存到本地。
安全组规则常见问题和最佳实践