云服务器BCC

    安全组

    查询安全组列表

    以下代码可以查询安全组列表:

    public static void listSecurityGroup(BccClient bccClient) {
        ListSecurityGroupsRequest listSecurityGroupsRequest = new ListSecurityGroupsRequest();
        // 设置分页标志
        listSecurityGroupsRequest.setMarker(securityGroupId);
        // 设置分页返回数据大小
        listSecurityGroupsRequest.setMaxKeys(maxKey);
        // 设置筛选的实例Bcc实例id
        listSecurityGroupsRequest.setInstanceId(instanceId);
        // 设计筛选的vpcId
        listSecurityGroupsRequest.setVpcId(vpcId);
        // 执行获取安全组列表操作
        ListSecurityGroupsResponse listSecurityGroupsResponse = bccClient.listSecurityGroups(listSecurityGroupsRequest);
    
        for (SecurityGroupModel securityGroupModel : listSecurityGroupsResponse.getSecurityGroups()) {
            System.out.println(securityGroupModel.getName());
        }
    }

    创建安全组

    以下代码可以创建一个安全组:

    public static void createSecurityGroup(BccClient bccClient) {
        CreateSecurityGroupRequest createSecurityGroupRequest = new CreateSecurityGroupRequest();
        // 设置安全组名字
        createSecurityGroupRequest.setName(newName);
        // 设置安全组描述
        createSecurityGroupRequest.setDesc(newDescription);
        List<SecurityGroupRuleModel> rules = new ArrayList<SecurityGroupRuleModel>();
        rules.add(new SecurityGroupRuleModel()
                // 设置备注
                .withRemark(securityGroupRemark)
                // 设置协议类型
                .withProtocol(securityGroupProtocol)
                // 设置端口范围,默认空时为1-65535,可以指定80等单个端口
                .withPortRange(securityGroupPortRange)
                // 设置入站/出站,取值ingress或egress,必选参数
                .withDirection(securityGroupDirection)
                // 设置源IP地址,与sourceGroupId不能同时设定值
                .withSourceIp(securityGroupSourceIp)
                // 设置源安全组ID
                .withSourceGroupId(securityGroupSourceGroupId));
    
        rules.add(new SecurityGroupRuleModel()
                // 设置备注
                .withRemark(securityGroupRemark)
                // 设置协议类型
                .withProtocol(securityGroupProtocol)
                // 设置端口范围,默认空时为1-65535,可以指定80等单个端口
                .withPortRange(securityGroupPortRange)
                // 设置入站/出站,取值ingress或egress,必选参数
                .withDirection(securityGroupDirection)
                // 设置目的IP地址,与destGroupId不能同时设定值
                .withDestIp(securityGroupDestIp)
                // 设置目的安全组ID
                .withDestGroupId(securityGroupDestGroupId));
        // 设置安全组规则
        createSecurityGroupRequest.setRules(rules);
    
        List<TagModel> listTags = new ArrayList<TagModel>();
        // 设置想要绑定的标签
        TagModel tagModel = new TagModel().withTagKey("test007").withTagValue("test007");
        listTags.add(tagModel);
        // 设置标签列表
        createSecurityGroupRequest.setTags(listTags);
        
        // 创建安全组
        System.out.println(bccClient.createSecurityGroup(createSecurityGroupRequest).getSecurityGroupId());
            }

    同一安全组中的规则以remark、protocol、direction、portRange、sourceIp|destIp、sourceGroupId|destGroupId唯一性索引,重复记录报409错误。 protocol的取值(tcp|udp|icmp),默认值为空,代表all。 具体的创建安全组规则接口描述BCC API 文档创建安全组

    删除安全组

    以下代码可以删除指定的安全组:

    public static void deleteSecurityGroup(BccClient bccClient) {
        // 删除安全组id为securityGroupId的安全组
        bccClient.deleteSecurityGroup(securityGroupId);
    }

    授权安全组规则

    使用以下代码可以在指定安全组中添加授权安全组规则:

    public static void authorizeSecurityGroupRule(BccClient bccClient) {
        SecurityGroupRuleOperateRequest securityGroupRuleOperateRequest = new SecurityGroupRuleOperateRequest();
    
        securityGroupRuleOperateRequest.setSecurityGroupId(securityGroupId);
        SecurityGroupRuleModel securityGroupRuleModel = new SecurityGroupRuleModel()
                // 设置备注
                .withRemark(securityGroupRemark)
                // 设置协议类型
                .withProtocol(securityGroupProtocol)
                // 设置端口范围,默认空时为1-65535,可以指定80等单个端口
                .withPortRange(securityGroupPortRange)
                // 设置入站/出站,取值ingress或egress,必选参数
                .withDirection(securityGroupDirection)
                // 设置源IP地址,与sourceGroupId不能同时设定值
                .withSourceIp(securityGroupSourceIp)
                // 设置源安全组ID
                .withSourceGroupId(securityGroupSourceGroupId);
    
        // 设置安全组规则
        securityGroupRuleOperateRequest.setRule(securityGroupRuleModel);
        // 执行授权安全组规则
        bccClient.authorizeSecurityGroupRule(securityGroupRuleOperateRequest);
    }
    • 同一安全组中的规则以remark、protocol、direction、portRange、sourceIp|destIp、sourceGroupId|destGroupId六元组作为唯一性索引,若安全组中已存在相同的规则将报409错误。
    • 具体的接口描述BCC API 文档授权安全组规则

    撤销安全组规则

    使用以下代码可以在指定安全组中撤销指定安全组规则授权:

    public static void revokeSecurityGroupRule(BccClient bccClient) {
        SecurityGroupRuleOperateRequest securityGroupRuleOperateRequest = new SecurityGroupRuleOperateRequest();
        // 设置安全组规则id
        securityGroupRuleOperateRequest.setSecurityGroupId(securityGroupId);
    
        SecurityGroupRuleModel securityGroupRuleModel = new SecurityGroupRuleModel()
                // 设置备注
                .withRemark(securityGroupRemark)
                // 设置协议类型
                .withProtocol(securityGroupProtocol)
                // 设置端口范围,默认空时为1-65535,可以指定80等单个端口
                .withPortRange(securityGroupPortRange)
                // 设置入站/出站,取值ingress或egress,必选参数
                .withDirection(securityGroupDirection)
                // 设置源IP地址,与sourceGroupId不能同时设定值
                .withSourceIp(securityGroupSourceIp)
                // 设置源安全组ID
                .withSourceGroupId(securityGroupSourceGroupId);
        // 执行撤销安全组规则
        bccClient.revokeSecurityGroupRule(securityGroupRuleOperateRequest);
    }
    • 同一安全组中的规则以remark、protocol、direction、portRange、sourceIp|destIp、sourceGroupId|destGroupId六元组作为唯一性索引,若安全组中不存在对应的规则将报404错误。
    • 具体的接口描述BCC API 文档撤销安全组规则
    上一篇
    自动快照策略
    下一篇
    部署集