安全组
更新时间:2024-07-02
查询安全组列表
以下代码可以查询安全组列表:
args := &api.ListSecurityGroupArgs{}
// 设置筛选的实例Bcc实例id
args.InstanceId = instanceId
// 设置筛选的安全组绑定的VPC实例ID
args.VpcId = vpcId
result, err := client.ListSecurityGroup(args)
if err != nil {
fmt.Println("list all security group failed:", err)
} else {
fmt.Println("list all security group success: ", result)
}
创建安全组
以下代码可以创建一个安全组:
args := &api.CreateSecurityGroupArgs{
// 设置安全组名称
Name: "sdk-create",
// 设置安全组规则
Rules: []api.SecurityGroupRuleModel{
{
// 设置安全组规则备注
Remark: "备注",
// 设置协议类型
Protocol: "tcp",
// 设置端口范围,默认空时为1-65535,可以指定80等单个端口
PortRange: "1-65535",
// 设置入站出站,取值ingress/egress
Direction: "ingress",
// 设置源IP地址,与sourceGroupId不能同时设置
SourceIp: "",
},
},
}
result, err := client.CreateSecurityGroup(args)
if err != nil {
fmt.Println("create security group failed:", err)
} else {
fmt.Println("create security group success: ", result)
}
同一安全组中的规则以remark、protocol、direction、portRange、sourceIp|destIp、sourceGroupId|destGroupId六元组作为唯一性索引,重复记录会报409错误。 protocol的取值(tcp|udp|icmp),默认值为空,代表all。 具体的创建安全组规则接口描述BCC API 文档创建安全组。
删除安全组
以下代码可以删除指定的安全组:
err := client.DeleteSecurityGroup(securityGroupId)
if err != nil {
fmt.Println("delete security group failed:", err)
} else {
fmt.Println("delete security group success")
}
授权安全组规则
使用以下代码可以在指定安全组中添加授权安全组规则:
args := &api.AuthorizeSecurityGroupArgs{
Rule: &api.SecurityGroupRuleModel{
Remark: "备注",
Protocol: "udp",
PortRange: "1-65535",
Direction: "ingress",
},
}
err := client.AuthorizeSecurityGroupRule(securityGroupId, args)
if err != nil {
fmt.Println("authorize security group new rule failed:", err)
} else {
fmt.Println("authorize security group new rule success")
}
- 同一安全组中的规则以remark、protocol、direction、portRange、sourceIp|destIp、sourceGroupId|destGroupId六元组作为唯一性索引,重复记录会报409错误。
- 具体的接口描述BCC API 文档授权安全组规则。
撤销安全组规则
使用以下代码可以在指定安全组中撤销指定安全组规则授权:
args := &api.RevokeSecurityGroupArgs{
Rule: &api.SecurityGroupRuleModel{
Remark: "备注",
Protocol: "udp",
PortRange: "1-65535",
Direction: "ingress",
SourceIp: "",
},
}
err := client.RevokeSecurityGroupRule(securityGroupId, args)
if err != nil {
fmt.Println("revoke security group rule failed:", err)
} else {
fmt.Println("revoke security group rule success")
}
- 同一安全组中的规则以remark、protocol、direction、portRange、sourceIp|destIp、sourceGroupId|destGroupId六元组作为唯一性索引,若安全组中不存在对应的规则将报404错误。
- 具体的接口描述BCC API 文档撤销安全组规则。
更新普通安全组规则
使用以下代码可以在指定普通安全组中更新安全组规则:
args := &api.UpdateSecurityGroupRuleArgs{
SecurityGroupRuleId: SecurityGroupRuleId,
Remark: Remark,
}
err := client.UpdateSecurityGroupRule(args)
if err != nil {
fmt.Println("update security group new rule failed:", err)
} else {
fmt.Println("update security group new rule success")
}
删除普通安全组规则
使用以下代码可以在指定普通安全组中删除指定安全组规则:
args := &api.DeleteSecurityGroupRuleArgs{
SecurityGroupRuleId: SecurityGroupRuleId,
}
err := client.DeleteSecurityGroupRule(args)
if err != nil {
fmt.Println("delete security group rule failed:", err)
} else {
fmt.Println("delete security group rule success")
}