安全组是一种虚拟防火墙,能够控制ECS实例的出入站流量。安全组的入方向规则控制ECS实例的入站流量,出方向规则控制ECS实例的出站流量。
创建ECS实例时,您可以指定一个或多个安全组。如果您创建ECS实例时未指定安全组,将使用默认安全组。在决定ECS实例的流量能否通过时,与ECS实例关联的多个安全组的规则,将按固定的策略排序,共同生效。
您可以为安全组新增规则,修改或删除已有规则,这些规则变动会自动地作用于安全组中的所有ECS实例。更多信息,请参见安全组规则。您可以随时修改ECS实例关联的安全组,修改后安全组的规则将会自动地作用于ECS实例。ECS实例关联的安全组,其规则作用于ECS实例的主网卡。专有网络ECS实例的其他弹性网卡,可以指定与主网卡不同的安全组。在专有网络VPC下,安全组仅能在所属的VPC下使用,在创建VPC网络下的ECS实例时,您指定的虚拟交换机和安全组,必须属于同一个VPC。
组内互通和授权安全组访问,是安全组提供的两项重要特性。组内互通,是指安全组内的ECS实例内网互通。授权安全组访问,是指您可以添加授权对象为安全组的安全组规则,从而允许或拒绝另一个安全组中的ECS实例,通过内网访问该安全组中的ECS实例。安全组分为普通安全组和企业级安全组两种类型,两者均免费,适用于不同的使用场景。普通安全组支持组内互通功能,支持添加授权安全组访问的规则,但可容纳的私网IP数量小于企业级安全组。企业级安全组可以容纳更多的私网IP地址数量,但不支持组内互通功能,也不支持添加授权安全组访问的规则。在ECS实例关联到多个安全组时,同一块网卡只能使用一种类型的安全组。建议您根据自己的使用需求来选择安全组类型。更多信息,请参见普通安全组与企业级安全组。
在您使用DescribeSecurityGroups接口查询到安全组的
ServiceManaged
属性为
True
,或使用控制台看到安全组有类似云产品托管的安全组不支持修改操作的提示时,表示该安全组为托管安全组。托管安全组属于用户账号,但操作权限属于云产品,用户仅能查看不能操作。更多信息,请参见托管安全组。
在您使用DeleteSecurityGroup接口删除安全组时返回错误码
InvalidOperation.DeletionProtection
,或使用控制台删除安全组看到类似删除保护的提示时,说明该安全组开启了删除保护功能。在您创建ACK集群时,关联的安全组会开启删除保护功能,来防止误删除。删除保护功能无法手动关闭,只有在删除了关联的ACK集群后,才能够自动关闭。更多信息,请参见关闭安全组删除保护。
合理使用安全组可以有效提高实例的安全性,但提高实例安全性是一项系统的工作,您还可以结合更多其他做法。更多信息,请参见云服务器ECS安全性。
安全组使用的最佳实践
关于安全组的使用,为您提供以下最佳实践建议:
- 规划您可以为安全组设置名称、描述,也可以设置安全组的标签、资源组,便于进行分类运维。建议您合理设置这些信息,方便快速识别安全组的用途,在管理较多安全组时更加清晰。
- 以白名单的方式使用安全组即默认拒绝所有访问,添加允许规则来放通指定的端口范围和授权对象。
- 添加安全组规则时遵循最小授权原则例如,开放Linux实例的22端口用于远程登录时,建议仅允许特定的IP访问,而非所有IP(
0.0.0.0/0
)。 - 遵循最小权限原则在不需要普通安全组内ECS实例互相内网互通时,将普通安全组的组内连通策略设置为组内隔离。
- 尽量保持单个安全组内规则的简洁按照用途将规则维护在多个安全组中,并将实例关联到这些安全组。单个安全组的规则数量过多,会增加管理复杂度。安全组规则的健康检查,提供了检测单个安全组冗余规则的能力,详情请参见查看安全组是否存在冗余规则。
- 不同类型应用的实例加入不同的安全组,分别维护安全组规则例如,将允许公网访问的实例关联到同一个安全组,仅放通对外提供服务的端口,例如80、443等,默认拒绝其他所有访问。避免在允许公网访问的实例上提供其他服务,例如MySQL、Redis等,建议将内部服务部署在不允许公网访问的实例上,并关联其他的安全组。
- 避免直接修改线上环境使用的安全组可以先克隆一个安全组在测试环境调试,确保修改后实例流量正常,再对线上环境的安全组规则进行修改。
当您创建VPC类型的ECS实例时,可以使用系统提供的默认安全组规则,也可以选择VPC中已有的其他安全组。安全组是一种虚拟防火墙,用来控制ECS实例的出站和入站流量。
本文档介绍常用VPC类型的ECS实例的安全组设置。
案例一:私网互通
VPC类型的ECS实例互通分以下两种情况:
- 同一VPC内的相同安全组下的ECS实例,默认互通。
- 不同VPC内的ECS实例,无法互通。首先需要使用高速通道、VPN网关、云企业网等产品打通两个VPC之间的通信,然后确保两个VPC内的ECS实例的安全组规则允许互相访问,如下表所示。 安全组规则规则方向授权策略协议类型和端口范围授权类型授权对象VPC 1中的ECS实例的安全组配置入方向允许Windows: RDP3389/3389地址段访问要访问的VPC2中的ECS实例的私网IP。 说明如果允许任意ECS实例登录,填写0.0.0.0/0。入方向允许Linux: SSH22/22地址段访问入方向允许自定义TCP自定义地址段访问VPC 2中的ECS实例的安全组配置入方向允许Windows: RDP3389/3389地址段访问要访问的VPC1中的ECS实例的私网IP。 说明如果允许任意ECS实例登录,填写0.0.0.0/0。入方向允许Linux: SSH22/22地址段访问入方向允许自定义TCP自定义地址段访问
案例二:拒绝特定IP或特定端口的访问
您可以通过配置安全组拒绝特定IP或特定端口对VPC类型的ECS实例的访问,如下表所示。
安全组规则规则方向授权策略协议类型和端口范围授权类型授权对象拒绝特定IP地址段对ECS实例所有端口的入站访问入方向拒绝
全部
-1/-1
地址段访问
要拒绝访问的IP地址段,如10.0.0.1/32。
拒绝特定IP地址段对ECS实例TCP 22端口的入站访问入方向拒绝
SSH(22)
22/22
地址段访问
要拒绝访问的IP地址段,如10.0.0.1/32。
案例三:只允许特定IP远程登录ECS实例
如果您为VPC中的ECS实例配置了公网IP,如EIP、公网NAT网关等。您可以根据具体情况,添加如下安全组规则允许Windows远程登录或Linux SSH登录。
安全组规则规则方向授权策略协议类型和端口范围授权类型授权对象允许Windows远程登录入方向允许
RDP
3389/3389
地址段访问允许登录ECS实例的指定IP地址。
说明
如果允许任意公网IP登录ECS,填写0.0.0.0/0。
允许Linux SSH登录入方向允许
SSH
22/22
地址段访问允许登录ECS实例的指定IP地址。
说明
如果允许任意公网IP登录ECS实例,填写0.0.0.0/0。
案例四:允许公网访问ECS实例部署的HTTP或HTTPS服务
如果您在VPC类型的ECS实例上部署了一个网站,通过EIP、公网NAT网关对外提供服务,您需要配置以下安全组规则允许用户从公网访问您的网站。
安全组规则规则方向授权策略协议类型和端口范围授权类型授权对象允许来自HTTP 80端口的入站访问入方向允许
HTTP
80/80
地址段访问0.0.0.0/0允许来自HTTPS 443端口的入站访问入方向允许
HTTPS
443/443
地址段访问0.0.0.0/0允许来自TCP 80端口的入站访问入方向允许
TCP
80/80
地址段访问0.0.0.0/0
安全组规则规则方向授权策略协议类型和端口范围授权类型授权对象
版权归原作者 2401_88127808 所有, 如有侵权,请联系我们删除。