ACL
初始化
确认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
新建AclClient
AclClient是ACL服务的客户端,为开发者与ACL服务进行交互提供了一系列的方法。
新建AclClient时,需要先使用Endpoint、AK、SK对AclClientConfiguration类型config实例进行配置,再使用config实例对AclClient进行配置,配置示例如下:
1 static final String HOST = "";
2 static final String AK = "";
3 static final String SK = "";
4 AclClientConfiguration config = new AclClientConfiguration();
5 config.setCredentials(new DefaultBceCredentials(AK, SK));
6 config.setEndpoint(HOST);
7 AclClient aclClient = new AclClient(config);
ACL管理
访问控制列表ACL(Access Control List)是VPC内的防火墙组件,用于控制子网级别的安全策略,灵活设置一个或多个子网的流量,满足用户不同网络部署的安全需求。 ACL管理前,需要关注下列内容:
条目 | ACL规则 |
---|---|
ACL范围 | ACL隶属于VPC,生效对象为该VPC下的子网 |
控制实例类型 | ACL访问控制策略生效于子网下的所有实例,包括BCC、DCC、BBC、RDS、SCS等实例 |
默认ACL规则 | 系统为每个子网创建了默认的ACL,该ACL中有一条默认规则,允许所有规则。默认规则不可以编辑 |
入站或出站 | 入站、出站的方向是指,站在子网下实例角度看到的方向 |
规则最大限制 | 对于同一个ACL下的规则,每个方向支持最多256个规则 |
规则触发 | 流量一旦匹配了ACL中某条规则,即触发访问控制策略(允许或拒绝),不会继续和其他的规则进行匹配 |
ACL状态 | ACL是无状态的,只对一条数据流的指定方向流量做访问控制,不会自动对该条数据流的返回流量做控制。 |
新建ACL
函数声明
1public void createAcl(CreateAclRequest createAclRequest) {
2 }
参数含义
请参考OpenAPI文档 创建ACL请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考ACL异常列表
代码示例
具体代码示例参考:ExampleAddAclRule.java
列举ACL
函数声明
1 public GetAclResponse getAcl(String vpcId) {
2 }
3 public GetAclResponse getAcl(GetAclRequest getAclRequest) {
4 }
参数含义
请参考OpenAPI文档 列举ACL请求参数
返回值
- 操作成功
1{
2 "metadata":"公共返回metadata结构参看附录",
3 "vpcId": "vpc-0d7urd9fyxxx",
4 "vpcName": "v11",
5 "vpcCidr": "192.168.0.0/16",
6 "aclEntrys": [
7 {
8 "subnetId": "sbn-nfqvsskw93zi",
9 "subnetName": "sbn-22",
10 "subnetCidr": "192.168.1.0/24",
11 "aclRules": [
12 {
13 "id": "ar-621tcndunsce",
14 "subnetId": "sbn-nfqvsskw93zi",
15 "description": "",
16 "protocol": "tcp",
17 "sourceIpAddress": "192.168.1.0/24",
18 "destinationIpAddress": "1.2.3.4/32",
19 "sourcePort": "0-65535",
20 "destinationPort": "80",
21 "position": 100,
22 "direction": "egress",
23 "ipVersion": 4,
24 "action": "deny"
25 }
26 ]
27 }
28 ]
29}
- 操作失败
操作失败返回异常列表参考ACL异常列表
代码示例
具体代码示例参考:ExampleAclList.java
更新ACL
函数声明
1public void modifyAclRuleAttributes(ModifyAclRuleAttributesRequest modifyAclRuleAttributesRequest) {
2 }
3public void modifyAclRuleAttributes(String aclRuleId, AclRule aclRule) {
4}
参数含义
请参考OpenAPI文档 更新ACL请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考ACL异常列表
代码示例
具体代码示例参考:ExampleUpdateAclRule.java
删除ACL
函数声明
1public void deleteAcl(String aclRuleId) {
2}
3public void deleteAcl(DeleteAclRequest deleteAclRequest) {
4}
参数含义
请参考OpenAPI文档 删除ACL请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考ACL异常列表
代码示例
具体代码示例参考:ExampleDeleteAclRule.java
分页查询ACL规则
函数声明
1 public ListAclResponse listAclRules(ListAclRequest listAclRequest) {
2 }
参数含义
请参考OpenAPI文档 列举ACL规则请求参数
返回值
- 操作成功
1{
2 "metadata":"公共返回metadata结构参看附录",
3 "maxKeys": 1000,
4 "isTruncated": false,
5 "aclRules": [
6 {
7 "id": "ar-jjxp7g3dihfk",
8 "subnetId": "sbn-0317afqpxw41",
9 "description": "",
10 "protocol": "tcp",
11 "sourceIpAddress": "2400:da00:e003:4c11::/64",
12 "destinationIpAddress": "1::/64",
13 "sourcePort": "0-65535",
14 "destinationPort": "80",
15 "position": 12,
16 "direction": "egress",
17 "ipVersion": 6,
18 "action": "allow"
19 }
20 ]
21}
- 操作失败
操作失败返回异常列表参考ACL异常列表
代码示例
具体代码示例参考:ExampleMarkerListAcl.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 }