文档首页/ 虚拟私有云 VPC/ 常见问题/ 安全类/ 为什么配置的安全组规则不生效?
更新时间:2024-09-29 GMT+08:00
分享

为什么配置的安全组规则不生效?

问题描述

实例(如ECS)安全组规则配置完成后,实际未生效。比如,添加的安全组规则是允许来自特定IP的流量访问安全组内实例,结果该流量还是无法访问实例。

背景知识

虚拟私有云VPC是您在云上的私有网络,通过配置安全组和网络ACL策略,可以保障VPC内部署的实例安全运行,比如弹性云服务器、数据库、云容器等。

  • 安全组对实例进行防护,将实例加入安全组内后,该实例将会受到安全组的保护。
  • 网络ACL对整个子网进行防护,将子网关联至网络ACL,则子网内的所有实例都会受到网络ACL保护。

除了VPC提供的安全策略,通常情况下您还可以配置实例的防火墙,进一步提升实例的安全。不同安全策略配合使用的工作原理图如图1所示。

图1 VPC安全策略

基于以上情况,如果您的安全组规则配置完未生效,除了安全组本身参数的配置可能有误,还有可能是不同的安全策略之间存在冲突,具体请您参考以下指导处理。

操作视频

本视频介绍安全组规则配置完未生效的可能原因及排查方法。

排查思路

以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。

如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。

图2 排查思路
表1 排查思路

可能原因

处理措施

安全组规则配置错误

解决方法请参考安全组规则配置错误

网络ACL规则与安全组规则冲突

解决方法请参考网络ACL规则与安全组规则冲突

实例防火墙限制端口访问

解决方法请参考实例防火墙限制端口访问

实例属于不同VPC,网络不通

解决方法请参考实例属于不同VPC,网络不通

安全组规则配置错误

当安全组规则配置有误时,无法按照规划的安全组规则对实例进行保护。您可以按照以下几点原因对安全组配置进行检查:

  1. 安全组规则方向设置错误,例如将需要在入方向添加的规则添加到出方向规则下。
    安全组中包括入方向规则和出方向规则,用来控制安全组内实例的入方向和出方向的网络流量。
    • 入方向规则控制外部请求访问安全组内的实例,控制的是流入实例的流量。
    • 出方向规则控制安全组内实例访问外部的请求,控制的是从实例流出的流量。
  2. 安全组规则协议类型未选择正确。

    网络协议即匹配流量的协议类型,支持TCP、UDP、ICMP和GRE协议,请正确选择安全组规则协议类型。

  3. 添加的端口是高危端口,对于运营商判断的高危端口,这些端口默认被屏蔽,在受限区域无法访问,此时建议您将端口修改为其他非高危端口。

    常用端口说明及高危端口请参考弹性云服务器常用端口

  4. 实际未开通业务所需的端口。

    在安全组规则中放开某个端口后,您还需要确保实例(如ECS)内对应的端口也已经放通,安全组规则才会对实例生效。

    请参考添加安全组规则中的“检查安全组规则是否生效”小节,检查ECS内端口开放情况,并验证配置是否生效。

当找到问题原因后,您可以参考添加安全组规则修改安全组规则选择正确的方向或协议类型、放通需要开放的端口。

网络ACL规则与安全组规则冲突

安全组对实例(如ECS)进行防护,网络ACL对子网进行防护。网络ACL规则与安全组规则冲突时,优先匹配网络ACL规则,可能会导致安全组规则不生效。

例如当您的安全组入方向规则放通80端口,但是同时设置的网络ACL规则拒绝80端口的访问,那么流量优先匹配网络ACL规则,此安全组规则不生效。

您可以参考添加网络ACL规则修改网络ACL规则放通对应协议端口。

实例防火墙限制端口访问

安全组和防火墙都可以对实例(如ECS)进行防护,当在安全组中开通某个端口的访问时,ECS的防火墙可能限制该端口的访问,您需要关闭防火墙,或者在防火墙配置例外端口。

您可以参考Windows云服务器怎样关闭防火墙、添加例外端口?Linux云服务器怎样关闭防火墙、添加例外端口?开放例外端口。

实例属于不同VPC,网络不通

安全组需在网络通信正常的情况下生效。若实例属于同一安全组,但是属于不同VPC,此时由于不同VPC网络不通,因此实例之间不能通信。

比如,您可以使用对等连接连通不同VPC网络,安全组才能对不同VPC内ECS的流量进行访问控制。VPC连接请参见应用场景

提交工单

如果上述方法均不能解决您的疑问,请提交工单寻求更多帮助。

相关文档