安全组规则用来控制ECS实例的出入站流量,适用于允许或拒绝特定网络流量、封锁不必要的端口、限制特定协议的流量和配置应用程序访问权限等使用场景。本文介绍安全组规则的添加、修改、查询、删除和导入导出操作。
操作前须知
在添加安全组规则之前,请了解以下内容:
安全组能力概述和使用建议。具体信息,请参见安全组。
除了自定义的安全组规则,安全组还有一些不可见的默认访问控制规则,会影响流量的允许或拒绝。具体信息,请参见普通安全组与企业级安全组。
安全组规则有数量限制,您应尽量保持规则的精简。具体信息,请参见安全组规则。
使用场景
添加安全组规则
通过控制台配置的安全组规则,入方向规则需要配置授权对象(即源地址,支持IP地址、安全组、前缀列表)、目的端口、协议类型;出方向规则需要配置授权对象(即目的地址,支持IP地址、安全组、前缀列表)、目的端口、协议类型。
使用ECS控制台
使用API
如果您需要更精确地控制ECS实例的出流量和入流量,可以使用安全组五元组规则。五元组规则包含:源IP地址、源端口、目的IP地址、目的端口以及协议类型,并且与原有的安全组规则完全兼容。您可以通过API的方式配置安全组五元组规则。更多信息请参见安全组五元组规则。
调用AuthorizeSecurityGroup - 增加安全组入方向规则,添加入方向规则。
调用AuthorizeSecurityGroupEgress - 增加安全组出方向规则,添加入方向规则。
修改安全组规则
修改安全组规则后,新的安全组规则对安全组中的ECS实例立即生效,您可能需要监控网络流量和连接情况,以确保修改后的规则满足实际业务需求,并维持网络安全。更多信息,请参见什么是云监控。
使用ECS控制台
在
页面,找到需要修改安全组规则的安全组,单击操作列中的管理规则。找到需要修改的安全组规则,单击操作列中的编辑,进行修改,完成后,单击保存。
使用API
使用ModifySecurityGroupRule - 修改安全组入方向规则,修改入方向规则。
使用ModifySecurityGroupEgressRule - 修改安全组出方向规则,修改出方向规则。
查询安全组规则
通过健康检查功能检测安全组中的冗余规则,可以帮助您简化安全组配置,减少管理工作量,提高网络管理的方便性和效率,同时降低安全漏洞的风险。
使用ECS控制台
方式一:查看单个安全组的规则
在
页面,找到需要修改安全组规则的安全组,单击操作列中的管理规则。选择安全组规则所属的方向,可以查询到各自分类的安全组规则。
说明在安全组规则列表上方的搜索框中输入端口或授权对象,能够快速搜索出符合条件的安全组规则。
方式二:查看ECS实例已加入的所有安全组中的规则
在
页面,找到待查看安全组规则的目标实例并单击实例ID,进入实例详情页。在安全组页签下,查看该实例加入的所有安全组。
单击操作列管理规则,逐个查询所有安全组的规则。
使用API
删除安全组规则
在删除安全组规则之前,请确保您了解此操作可能带来的影响。避免因误删而导致不必要的网络安全问题。如果在删除安全组规则后发现仍然需要使用该规则,您可以重新创建一条新的规则来取代它。
使用ECS控制台
在
页面,找到需要修改安全组规则的安全组,单击操作列中的管理规则。找到需要删除的安全组规则,单击操作列中的删除。
在弹出的对话框中阅读提示信息,确认无误后,单击确定。
使用API
使用RevokeSecurityGroup - 删除安全组入方向规则,删除入方向规则。
使用RevokeSecurityGroupEgress - 删除出方向安全组规则,删除出方向规则。
检查安全组是否存在冗余规则
安全组的健康检查功能用于检查单个安全组中是否存在冗余规则。例如,安全组规则A的所有条件被规则B完全包含,并且规则A的优先级小于等于规则B的优先级,则规则A被认定为冗余规则。如果存在冗余规则,请清除冗余规则,避免出现安全组规则数量达到上限影响安全组的使用。
每个安全组以及ECS实例的每张弹性网卡可以包含的安全组规则数量有限。有关安全组规则的使用限制及配额,请参见安全组使用限制。
使用ECS控制台
在
页面,找到需要查询规则的安全组,单击操作列中的管理规则。在访问规则区域,单击。
在健康检查对话框中确认是否存在冗余规则。
如下图所示,表示该安全组中存在两条冗余规则。
选中冗余规则,然后单击确定,可对冗余规则进行删除。
导入导出安全组规则
ECS控制台支持安全组规则导出和导入功能。适用于安全组规则备份、恢复和迁移等使用场景。支持将安全组规则导出为JSON文件或CSV文件。导入安全组规则为非覆盖式导入(导入的新规则不会覆盖原有规则),建议单次导入规则数量不超过200条,否则将会有导入失败的风险。更多信息,请参见安全组使用限制。
使用ECS控制台
在
页面,找到需要导出安全组规则的安全组,单击操作列中的管理规则。在访问规则区域,选择对应操作进行管理。
导入安全组规则
单击,在导入安全组规则对话框中,单击选择文件,然后选择本地的JSON或CSV文件。然后单击开始导入。
如果存在导入失败的规则,您可以将光标移到警告图标上查看失败原因。
导出安全组规则
单击,并选择保存的文件格式,下载并保存到本地。
JSON格式
JSON文件命名规则示例为:
ecs_${region_id}_${groupID}.json
假设
regionID
是cn-qingdao
,groupID
是sg-123
,导出的JSON文件名称则是ecs_cn-qingdao_sg-123.json
。CSV格式
CSV文件命名规则示例为:
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
。
安全组规则常见问题和最佳实践
关于安全组配置、安全组规则设定、主机处罚与解禁流程、资源限额管理等常见问题,请参见安全FAQ。
关于协议类型和端口范围的问题,请参见常用端口、修改服务器默认远程端口。
将云资源(ECS实例,弹性网卡)加入新的安全组中,请参见安全组与ECS实例关联的管理、安全组与弹性网卡关联的管理。
根据业务需要,如果需要修改安全组的组内连通策略,请参见修改普通安全组的组内连通策略。
安全组规则配置最佳实践与应用案例:
如果服务器开启了防火墙,并设置了屏蔽外界访问的规则,那么在远程访问该服务器时,可能会导致访问失败。开启和关闭系统防火墙的最佳实践:
其他最佳实践: