安全组用于设置单台或多台ECS实例的网络访问控制,它是重要的网络安全隔离手段,用于在云端划分安全域。安全组五元组规则能精确控制源IP、源端口、目的IP、目的端口以及传输层协议。
背景信息
在最初设计安全组规则时:
- 安全组入规则只支持:源IP地址、目的端口、传输层协议。
- 安全组出规则只支持:目的IP地址、目的端口、传输层协议。
在多数应用场景下,该安全组规则简化了设置,但存在如下弊端:
- 无法限定入规则的源端口范围,默认放行所有源端口。
- 无法限定入规则的目的IP地址,默认放行安全组下的所有IP地址。
- 无法限定出规则的源端口范围,默认放行所有源端口。
- 无法限定出规则的源IP地址,默认放行安全组下的所有IP地址。
五元组规则定义
五元组规则包含:源IP地址、源端口、目的IP地址、目的端口、传输层协议。
五元组规则完全兼容原有的安全组规则,能更精确的控制源IP地址、源端口、目的IP地址、目的端口以及传输层协议。
五元组出规则示例如下:
源IP地址:172.16.1.0/32 源端口:22 目的IP:10.0.0.1/32 目的端口:不限制 传输层协议:TCP 授权策略:Drop
示例中的出规则表示禁止172.16.1.0/32
通过22端口对10.0.0.1/32
发起TCP访问。
应用场景
- 某些平台类网络产品接入第三方厂商的解决方案为用户提供网络服务,为了防范这些产品对用户的ECS实例发起非法访问,则需要在安全组内设置五元组规则,更精确的控制出流量和入流量。
- 设置了组内网络隔离的安全组,如果您想精确控制组内若干ECS实例之间可以互相访问,则需要在安全组内设置五元组规则。
配置五元组规则
您可以使用OpenAPI设置五元组规则。
- 增加安全组入规则,请参见AuthorizeSecurityGroup。
- 增加安全组出规则,请参见AuthorizeSecurityGroupEgress。
- 删除安全组入规则,请参见RevokeSecurityGroup。
- 删除安全组出规则,请参见RevokeSecurityGroupEgress。
参数说明
在授权或解除授权时,各参数的含义如下表所示。
参数 | 入规则中各参数含义 | 出规则中各参数含义 |
---|---|---|
SecurityGroupId | 当前入规则所属的安全组ID,即目的安全组ID。 | 当前出规则所属的安全组ID,即源安全组ID。 |
DestCidrIp | 目的IP范围,可选参数。
|
目的IP,DestGroupId与DestCidrIp二者必选其一,如果二者都指定,则DestCidrIp优先级高。 |
PortRange | 目的端口范围,必选参数 | 目的端口范围,必选参数。 |
DestGroupId | 不允许输入。目的安全组ID一定是SecurityGroupId。 | 目的安全组ID。DestGroupId与DestCidrIp二者必选其一,如果二者都指定,则DestCidrIp优先级高。 |
SourceGroupId | 源安全组ID,SourceGroupId与SourceCidrIp二者必选其一,如果二者都指定,则SourceCidrIp优先级高。 | 不允许输入,出规则的源安全组ID一定是SecurityGroupId。 |
SourceCidrIp | 源IP范围,SourceGroupId与SourceCidrIp二者必选其一,如果二者都指定,则SourceCidrIp优先级高。 | 源IP范围,可选参数。
|
SourcePortRange | 源端口范围,可选参数,不填则不限制源端口。 | 源端口范围,可选参数,不填则不限制源端口。 |