普通安全组
初始化
确认Endpoint
在确认您使用SDK,需要配置Endpoint时,理解Endpoint相关的概念。 百度智能云目前开放了多区域支持,请参考区域选择说明。 目前支持“华北-北京”、“华南-广州”、"华东-苏州"、"香港"、"金融华中-武汉"和"华北-保定"六个区域。对应Endpoint信息为:
访问区域 | 对应Endpoint |
---|---|
华北-北京 | bcc.bj.baidubce.com |
华南-广州 | bcc.gz.baidubce.com |
华东-苏州 | bcc.su.baidubce.com |
香港 | bcc.hkg.baidubce.com |
金融华中-武汉 | bcc.fwh.baidubce.com |
华北-保定 | bcc.bd.baidubce.com |
获取密钥
要使用百度智能云安全组,您需要拥有一个有效的 AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问BOS做签名验证。 可以通过如下步骤获得并了解您的AK/SK信息: 注册百度智能云账号 创建AK/SK
新建BccClient
BccClient是安全组服务的客户端,为开发者与安全组服务进行交互提供了一系列的方法。
新建BccClient时,需要先使用Endpoint、AK、SK对BccClientConfiguration类型config实例进行配置,再使用config实例对BccClient进行配置,配置示例如下:
1 static final String HOST = "";
2 static final String AK = "";
3 static final String SK = "";
4 BccClientConfiguration config = new BccClientConfiguration();
5 config.setCredentials(new DefaultBceCredentials(AK, SK));
6 config.setEndpoint(HOST);
7 BccClient bccClient = new BccClient(config);
安全组管理
- 创建BCC实例时,可以选择默认安全组或者自定义安全组。
- 每个BCC实例必须选择一个安全组。
- 每个BCC实例最多只能与10个安全组关联,如果某个BCC实例关联了多个安全组,则此BCC实例生效的规则是已关联安全组所有规则的合集。
- 用户可以允许所有与此安全组关联的BCC实例彼此之间进行通信,或是与其他安全组关联的实例和与此安全组关联的实例之间进行通信。默认与同一安全组关联的BCC实例彼此间可进行通信。
- 不支持在安全组维度下关联BCC实例,仅可通过BCC实例加入安全组。
- 默认安全组不可删除,可以增、删、改规则。仅默认安全组提供一键恢复初始设置按钮。
默认安全组的规则:
- 入站:允许访问所有端口,即允许外部所有IP的流量进入关联BCC的所有端口。
- 出站:允许访问所有端口,即允许关联BCC的所有端口访问外部所有IP的所有端口。
新建安全组
函数声明
1public CreateSecurityGroupResponse createSecurityGroup(CreateSecurityGroupRequest request) {
2 }
参数含义
请参考OpenAPI文档 创建安全组请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "securityGroupId":"g-p09p0ihp7498"
4}
- 操作失败
操作失败返回异常列表参考安全组异常列表
代码示例
具体代码示例参考:ExampleCreateSecurityGroup.java
列举安全组列表
函数声明
1 public ListSecurityGroupsResponse listSecurityGroups(ListSecurityGroupsRequest request) {
2 }
参数请求
请参考OpenAPI文档 列举安全组请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "marker": "",
4 "isTruncated": false,
5 "maxKeys": 1000,
6 "securityGroups": [
7 {
8 "id": "g-6r0ds9xbxwes",
9 "name": "默认安全组",
10 "vpcId": "vpc-hdq0mqg68si0",
11 "desc": "default",
12 "createdTime": "2020-03-10T20:01:12Z",
13 "updatedTime": "2022-06-21T06:48:33Z",
14 "sgVersion": 0,
15 "rules": [
16 {
17 "remark": "全部协议",
18 "direction": "ingress",
19 "ethertype": "IPv4",
20 "portRange": "1-65535",
21 "sourceGroupId": "",
22 "sourceIp": "180.76.1.0/24",
23 "securityGroupId": "g-6r0ds9xbxwes",
24 "securityGroupRuleId": "r-k5erXBuF",
25 "createdTime": "2020-07-20T22:58:07Z",
26 "updatedTime": "2022-06-21T06:48:33Z",
27 "protocol": "all"
28 }
29 ],
30 "tags": []
31 }
32 ]
33}
- 操作失败
操作失败返回异常列表参考安全组异常列表
代码示例
具体代码示例参考:ExampleListSecurityGroup.java
查看安全组详情
函数声明
1 public SecurityGroupModel getSecurityGroup(String securityGroupId) {
2 }
参数请求
请参考OpenAPI文档 查看安全组详情
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "id": "g-7dyv27r6pnse",
4 "name": "默认安全组",
5 "vpcId": "vpc-nw3m9e8kcby6",
6 "desc": "default",
7 "createdTime": "2024-09-13T06:25:19Z",
8 "sgVersion": 0,
9 "bindInstanceNum": 1,
10 "rules": [
11 {
12 "id": "r-rv2gdcz8bzzj",
13 "securityGroupId": "g-rfdndhzju1f7",
14 "direction": "ingress",
15 "ethertype": "IPv4",
16 "protocol": "tcp",
17 "portRange": "1991-29982",
18 "sourceGroupId": "g-sv5y70z12b0e",
19 "remark": "test",
20 "createdTime": "2024-09-27T07:07:07Z",
21 "updatedTime": "2024-09-27T07:47:57Z"
22 }
23 ],
24 "tags":[
25 {
26 "tagKey": "tagKey",
27 "tagValue": "tagValue"
28 }
29 ]
30}
- 操作失败
操作失败返回异常列表参考安全组异常列表
代码示例
具体代码示例参考:ExampleGetSecurityGroup
删除安全组
函数声明
1public void deleteSecurityGroup(String securityGroupId) {
2}
参数含义
请参考OpenAPI文档 删除安全组请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考安全组异常列表
代码示例
具体代码示例参考:ExampleDeleteSecurityGroup.java
授权安全组规则
函数声明
1public void authorizeSecurityGroupRule(SecurityGroupRuleOperateRequest request) {
2 }
参数含义
请参考OpenAPI文档 授权安全组请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "securityGroupId":"sg-p09p0ihp7498"
4}
- 操作失败
操作失败返回异常列表参考安全组异常列表
代码示例
具体代码示例参考:ExampleAddSecurityGroupRule.java
撤销安全组规则
函数声明
1public void revokeSecurityGroupRule(SecurityGroupRuleOperateRequest request) {
2 }
参数含义
请参考OpenAPI文档 撤销安全组请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考安全组异常列表
代码示例
具体代码示例参考:ExampleRevokeSecurityGroupRule.java
删除安全组规则
函数声明
1 public void deleteSecurityGroupRule(String securityGroupRuleId) {
2 }
参数含义
请参考OpenAPI文档 删除安全组规则请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考安全组异常列表
代码示例
具体代码示例参考:ExampleDeleteSecurityGroupRule.java
更新安全组规则
函数声明
1public void updateSecurityGroupRule(UpdateSecurityGroupRuleRequest request) {
2 }
参数含义
请参考OpenAPI文档 更新安全组请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考安全组异常列表
代码示例
具体代码示例参考:ExampleUpdateSecurityGroupRule.java
附录
公共返回信息metadata格式
1 {
2 "bceRequestId":"f5f0821d-45fe-439b-bbf4-fc48b639f84a",
3 "contentLength":28,
4 "contentType":"application/json;charset=UTF-8",
5 "date":1701917695000,
6 "server":"openresty/1.15.8.1"
7 }