安全组
更新时间:2025-04-29
查询安全组列表
以下代码可以查询安全组列表:
Go
1args := &api.ListSecurityGroupArgs{}
2
3// 设置筛选的实例Bcc实例id
4args.InstanceId = instanceId
5
6// 设置筛选的安全组绑定的VPC实例ID
7args.VpcId = vpcId
8
9result, err := client.ListSecurityGroup(args)
10if err != nil {
11 fmt.Println("list all security group failed:", err)
12} else {
13 fmt.Println("list all security group success: ", result)
14}
创建安全组
以下代码可以创建一个安全组:
Go
1args := &api.CreateSecurityGroupArgs{
2 // 设置安全组名称
3 Name: "sdk-create",
4 // 设置安全组规则
5 Rules: []api.SecurityGroupRuleModel{
6 {
7 // 设置安全组规则备注
8 Remark: "备注",
9 // 设置协议类型
10 Protocol: "tcp",
11 // 设置端口范围,默认空时为1-65535,可以指定80等单个端口
12 PortRange: "1-65535",
13 // 设置入站出站,取值ingress/egress
14 Direction: "ingress",
15 // 设置源IP地址,与sourceGroupId不能同时设置
16 SourceIp: "",
17 },
18 },
19}
20result, err := client.CreateSecurityGroup(args)
21if err != nil {
22 fmt.Println("create security group failed:", err)
23} else {
24 fmt.Println("create security group success: ", result)
25}
同一安全组中的规则以remark、protocol、direction、portRange、sourceIp|destIp、sourceGroupId|destGroupId六元组作为唯一性索引,重复记录会报409错误。 protocol的取值(tcp|udp|icmp),默认值为空,代表all。 具体的创建安全组规则接口描述BCC API 文档创建安全组。
删除安全组
以下代码可以删除指定的安全组:
Go
1err := client.DeleteSecurityGroup(securityGroupId)
2if err != nil {
3 fmt.Println("delete security group failed:", err)
4} else {
5 fmt.Println("delete security group success")
6}
授权安全组规则
使用以下代码可以在指定安全组中添加授权安全组规则:
Go
1args := &api.AuthorizeSecurityGroupArgs{
2 Rule: &api.SecurityGroupRuleModel{
3 Remark: "备注",
4 Protocol: "udp",
5 PortRange: "1-65535",
6 Direction: "ingress",
7 },
8}
9err := client.AuthorizeSecurityGroupRule(securityGroupId, args)
10if err != nil {
11 fmt.Println("authorize security group new rule failed:", err)
12} else {
13 fmt.Println("authorize security group new rule success")
14}
- 同一安全组中的规则以remark、protocol、direction、portRange、sourceIp|destIp、sourceGroupId|destGroupId六元组作为唯一性索引,重复记录会报409错误。
- 具体的接口描述BCC API 文档授权安全组规则。
撤销安全组规则
使用以下代码可以在指定安全组中撤销指定安全组规则授权:
Go
1args := &api.RevokeSecurityGroupArgs{
2 Rule: &api.SecurityGroupRuleModel{
3 Remark: "备注",
4 Protocol: "udp",
5 PortRange: "1-65535",
6 Direction: "ingress",
7 SourceIp: "",
8 },
9}
10err := client.RevokeSecurityGroupRule(securityGroupId, args)
11if err != nil {
12 fmt.Println("revoke security group rule failed:", err)
13} else {
14 fmt.Println("revoke security group rule success")
15}
- 同一安全组中的规则以remark、protocol、direction、portRange、sourceIp|destIp、sourceGroupId|destGroupId六元组作为唯一性索引,若安全组中不存在对应的规则将报404错误。
- 具体的接口描述BCC API 文档撤销安全组规则。
更新普通安全组规则
使用以下代码可以在指定普通安全组中更新安全组规则:
Go
1args := &api.UpdateSecurityGroupRuleArgs{
2 SecurityGroupRuleId: SecurityGroupRuleId,
3 Remark: Remark,
4}
5err := client.UpdateSecurityGroupRule(args)
6if err != nil {
7 fmt.Println("update security group new rule failed:", err)
8} else {
9 fmt.Println("update security group new rule success")
10}
删除普通安全组规则
使用以下代码可以在指定普通安全组中删除指定安全组规则:
Go
1args := &api.DeleteSecurityGroupRuleArgs{
2 SecurityGroupRuleId: SecurityGroupRuleId,
3}
4err := client.DeleteSecurityGroupRule(args)
5if err != nil {
6 fmt.Println("delete security group rule failed:", err)
7} else {
8 fmt.Println("delete security group rule success")
9}
关联安全组
使用以下代码可以在关联指定安全组:
Go
1args := &api.BindSgV2Req{
2 InstanceIds: []string{
3 "InstanceIds",
4 },
5 SecurityGroupIds: []string{
6 "SecurityGroupIds",
7 },
8 SecurityGroupType: "SecurityGroupType",
9 }
10res, err := BCC_CLIENT.InstanceBindSecurityGroup(args)
11if err != nil {
12 fmt.Println("bind security group failed:", err)
13} else {
14 fmt.Println("bind security group success")
15}
解绑安全组
使用以下代码可以解绑指定安全组:
Go
1args := &api.UnbindSgV2Req{
2 InstanceIds: []string{
3 "InstanceIds",
4 },
5 SecurityGroupIds: []string{
6 "SecurityGroupIds",
7 },
8 SecurityGroupType: "SecurityGroupType",
9 }
10 res, err := BCC_CLIENT.InstanceUnbindSecurityGroup(args)
11if err != nil {
12 fmt.Println("unbind security group failed:", err)
13} else {
14 fmt.Println("unbind security group success")
15}
替换安全组
使用以下代码可以替换为指定安全组:
Go
1args := &api.ReplaceSgV2Req{
2 InstanceIds: []string{
3 "InstanceIds",
4 },
5 SecurityGroupIds: []string{
6 "SecurityGroupIds",
7 },
8 SecurityGroupType: "enterprise",
9 }
10 res, err := BCC_CLIENT.InstanceReplaceSecurityGroup(args)
11if err != nil {
12 fmt.Println("replace security group failed:", err)
13} else {
14 fmt.Println("replace security group success")
15}