所有文档

          私有网络 VPC

          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对AclConfigs进行配置,再使用AclConfigs实例对AclClient进行配置,配置示例如下:

          $AclConfigs = array(
              'credentials' => array(
                  'ak' => '',
                  'sk' => '',
              ),
              'endpoint' => 'bcc.bj.baidubce.com',  //bj
          );
          $AclClient = new AclClient($AclConfigs)

          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

          可以使用createAclRule函数创建ACL规则,函数定义如下:

          public function createAclRule($aclRules, $clientToken = null, $options = array()) {
          	......
           }

          aclRules包含参数如下:

          参数名称 类型 是否必需 描述
          subnetId String 子网的ID
          protocol String 协议,包括all tcp udp icmp
          sourceIpAddress String 源IP
          destinationIpAddress String 目的IP
          sourcePort String 源端口,例如1-65535,或8080
          destinationPort String 目的端口,例如1-65535,或8080
          position Integer 优先级 1-5000且不能与已有条目重复。数值越小,优先级越高,规则匹配顺序为按优先级由高到低匹配
          direction String 规则的入站ingress 规则的出站egress
          action String 策略,包括allow和deny
          description String 备注

          注意:

          • ACL规则按优先级由高到低匹配,例如优先级50的规则会优先于顺序为100的规则。
          • 优先级输入范围是1-32768,作为最佳实践,建议上下两条规则的优先级数值区间要大,便于后期调整,如100,200,300等。
          • 在同样入站/出站的方向下,不同规则的优先级不能相同。
          • 设置ingress规则,需要destinationIpAddress在subnet cidr范围内;设置egress规则,需要sourceIpAddress在subnet cidr范围内。

          使用示例如下:

          $aclrule = new AclRule("$subnetId", "tcp", "192.168.0.0", "192.168.0.0/20", "1-65535", "443", 55, "ingress", "allow");
          $aclRules = array($aclrule);
          $resp = $this->client->createAclRule($aclRules);
          print_r($resp);

          列举ACL

          列举ACL可以分为两个纬度,分别为列举vpc内所有ACL规则和subnet内所有ACL规则。

          列举vpc内所有ACL

          可以使用getAcl函数列举vpc内所有ACL,函数定义如下:

          public function getAcl($vpcId, $options = array()) {
          	......
           }

          使用示例如下:

          $resp = $this->client->getAcl('$vpcId');
          print_r($resp);

          列举subnet内所有ACL

          可以使用listAclRules函数列举subnet内所有ACL,函数定义如下:

          public function listAclRules($subnetId, $marker = null, $maxkeys = null, $options = array()) {
          	......
           }

          使用示例如下:

          $resp = $this->client->listAclRules('$subnetId');
          print_r($resp);

          更新ACL

          可以使用modifyAclRuleAttributes函数更新ACL规则,函数定义如下:

          public function updateAclRule($aclRuleId, $description = null, $protocol = null, $sourceIpAddress = null, $destinationIpAddress = null, $sourcePort = null, $destinationPort = null, $position = null, $action = null, $clientToken = null, $options = array()){
          	......
           }

          updateAclRule参数包括aclRuleId和可以更新的Acl字段。aclRuleId指定要更新的ACL,更新的Acl字段内容可见新建ACL参数列表,除去subnetId其他字段均可更新。

          注意: 更新ACL规则字段时,依然要符合各个字段的填写要求。

          使用示例如下:

          $resp = $this->client->updateAclRule('$aclId', 'aaaaaaaa', 'tcp', '192.168.0.0', '192.168.0.0/20', '1-65535', '22', '334', 'allow');
          print_r($resp);

          删除ACL

          可以使用deleteAcl函数删除ACL规则,函数定义如下:

          public function deleteAclRule($aclRuleId, $clientToken = null, $options = array()) {
          	......
           }

          deleteAcl参数主要包括aclRuleId,确定要删除的ACL规则。

          注意: aclRuleId可以通过列举ACL获取,其中默认ACL规则不显示aclRuleId,不能对默认ACL规则进行更新和删除。

          使用示例如下:

          $resp = $this->client->deleteAclRule('$aclId');
          print_r($resp);
          上一篇
          安全组
          下一篇
          Route