通过API或SDK查询安全组规则无法显示所有的规则

概述

本文介绍通过API或SDK查询安全组规则时,无法显示所有规则的处理方法。

 

详情描述

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

SDK查询方法与API查询类似,此处以API查询为例。

 

通过API查询安全组的原理分析

安全组中有Internet和Intranet两种网络类型。通过API方法取值DescribeSecurityGroupAttribute的查询方式,关于网络类型区分的参数没有强制要求提供,则默认显示Internet的规则,若需要看Intranet的规则(如内网互相打通、金融云VPN防火墙的规则等内网方面的安全组规则)则需要同时提供NicType参数,设置其值为intranet即可。参数说明如下。

提示:通过SDK查询也类似,升级到最新版本后使用相应的方法设置NicType参数值即可。

名称 类型 是否必须 描述
Action String 系统规定参数,取值:DescribeSecurityGroupAttribute
SecurityGroupId String 目标安全组 ID
RegionId String 目标安全组所属 Region ID
NicType String 网络类型,取值:internet | intranet,默认值为 internet

 

实例说明

本文以ECS产品为例,通过API方法的调用,默认情况,必需的参数只有SecurityGroupIdRegionId,执行如下命令,提交后只会返回在Internet下的规则。

aliyuncli ecs DescribeSecurityGroupAttribute \
--SecurityGroupId [$SecurityGroup_ID] \
--RegionId [$Region_ID] \

注:

  • [$SecurityGroup_ID]为目标安全组ID,这里填ECS所属的安全组。
  • [$Region_ID]为目标安全组所属Region ID。

系统显示类似如下。

 

解决方法

需要额外加入NicType参数,且设定的值为intranet,执行命令如下。

aliyuncli ecs DescribeSecurityGroupAttribute \
--SecurityGroupId [$SecurityGroup_ID] \
--RegionId [$Region_ID] \
--Nictype intranet

系统显示类似如下,确认系统显示intranet网络类型的安全组规则。

 

相关文档

AliyunCLI配置及使用,请参考如下文档。

 

适用于

  • 云服务器 ECS