前提条件
   配置桶ACL的账号需要是桶 的拥有者,或者具备该桶的ACL写权限。
   
  
   使用方式
   OBS支持通过控制台、API、SDK、OBS Browser+、obsutil方式配置桶ACL。
   
  
   
    
     
使用OBS控制台
    
    
     
      - 在OBS管理控制台左侧导航栏选择“对象存储”。
 
      - 在桶列表中,单击待操作的桶,进入“对象”页面。
 
      - 在左侧导航栏,单击“权限控制 > 桶ACL”。
 
      - 在“桶ACL”中,支持切换公共权限(私有/公共读/公共读写),快速配置匿名用户的桶ACL访问权限。
       
       
        
 
        
         
          - 公共读/公共读写权限切换私有权限,切换后除桶或对象的所有者外,其余用户无访问权限。
 
          - 私有权限切换公共读权限,可以使任何用户在不用身份认证的情况下直接读取桶内的对象,请谨慎操作。
 
          - 私有权限切换公共读写权限,可以使任何用户在不用身份认证的情况下直接读/写/删桶内的对象,请谨慎操作。
 
         
         
        
       
        图1 修改公共权限
        
        
        
      - 单击用户类型操作列的“编辑”可按照需求通过勾选相应权限对拥有者、匿名用户以及日志投递用户组赋予目标桶的ACL权限。
 
      - 单击页面中部的“导出”,可导出桶ACLs权限信息,包含用户类型、账号、桶访问权限和ACL访问权限。
 
      - 单击页面中部的“增加”,可对特定账号添加ACL权限。
       
       
输入特定账号的“账号ID”,并为其设定相应的ACL权限。“账号ID”可通过“我的凭证”页面查看。
       单击“确定”。
       
        图2 添加权限
        
        
       
       
        
         
          表1 桶访问权限
         
         
          
           | 
             配置选项  | 
           
             描述  | 
          
         
         
          
           | 
             读取权限  | 
           
             允许被授权者获取桶内对象列表和桶元数据。  | 
          
          
           | 
             写入权限  | 
           
             允许被授权者向桶中上传对象。 
            对于桶中现有对象,允许授权者删除和覆盖这些对象。  | 
          
         
        
        
       
        
         
          表2 对象权限
         
         
          
           | 
             配置选项  | 
           
             描述  | 
          
         
         
          
           | 
             对象读权限  | 
           
             对象继承桶的访问权限,在桶配置读取权限时,对象继承配置,允许被授权者获取对象内容和元数据。  | 
          
         
        
        
       
        
         
          表3 ACL访问权限
         
         
          
           | 
             配置选项  | 
           
             描述  | 
          
         
         
          
           | 
             读取权限  | 
           
             允许被授权者读取桶ACL属性。  | 
          
          
           | 
             写入权限  | 
           
             允许被授权者更新桶ACL属性。  | 
          
         
        
        
        
     
     
    
   
  
  
  
   
    
     
使用图形化工具OBS Browser+
    
    
     
      - 登录OBS Browser+。
 
      - 选中待配置的桶,单击“桶ACLs”。
 
      - 根据需求设置目标桶的ACL权限,单击“确认”,如图3所示。
       
       
        图3 配置ACL
        
        
       当用户新创建一个桶时,如果不指定相应的ACL权限,OBS Browser+自动将该桶设置为仅允许桶的所有者访问,其他任何人无法访问该桶及桶内的对象。
        
     
     
    
   
  
   
    
     
使用命令行工具obsutil
    
    
     命令结构:
     
      - Windows操作系统 
       
obsutil chattri obs://bucket [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
 
      - macOS/Linux操作系统 
       
./obsutil chattri obs://bucket [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
 
     
     运行示例:
     
     参数说明:
     
      
       
        
         | 
           参数  | 
         
           约束  | 
         
           描述  | 
        
       
       
        
         | 
           bucket  | 
         
           必选  | 
         
           桶名。  | 
        
        
         | 
           sc  | 
         
           附加参数,可选  | 
         
           桶的默认存储类型。支持的值: 
          
           - standard:标准存储,访问时延低、吞吐量高,适用于有大量热点文件(平均一个月多次)或小文件(小于1MB)。
 
           - warm:低频访问存储,可用性略低于standard,适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景。
 
           - cold:归档存储,安全、持久且成本极低,适用于很少访问(平均一年访问一次)数据的业务场景。
 
           - deep-archive:深度归档存储(受限公测),适用于长期不访问(平均几年访问一次)数据的业务场景,其成本相比归档存储更低,但相应的数据恢复时间将更长,一般为数小时。
 
           
          
            说明: 
           
            如果桶的可用区是多AZ,则不支持修改其默认存储类型为cold。 
            
            | 
        
        
         | 
           acl  | 
         
           附加参数,可选  | 
         
           桶的预定义访问策略。支持的值: 
          
           - private
 
           - public-read
 
           - public-read-write
 
           
          
            说明: 
           
            以上三个值分别对应:私有读写、公共读、公共读写,三种预定义访问策略。 
            
            | 
        
        
         | 
           aclXml  | 
         
           附加参数,可选  | 
         
           桶的访问策略(xml格式表示)。 
          <AccessControlPolicy>
    <Owner>
        <ID>ownerid</ID>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee>
                <ID>userid</ID>
            </Grantee>
            <Permission>[WRITE|WRITE_ACP|READ|READ_ACP|FULL_CONTROL]</Permission>
        </Grant>
        <Grant>
            <Grantee>
                <Canned>Everyone</Canned>
            </Grantee>
            <Permission>[WRITE|WRITE_ACP|READ|READ_ACP|FULL_CONTROL]</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>
          
            说明: 
           
            
             - Owner节点为可选,指定桶拥有者ID。
 
             - AccessControlList节点下的Grant子节点包含被授权的用户列表,Grantee子节点指定被授权用户的ID,Canned子节点指定被授权的用户组(当前仅支持Everyone)。
 
             - 可支持被授予的权限有:WRITE(写权限)、WRITE_ACP(写ACL权限)、READ(读权限)、READ_ACP(读ACL权限)和FULL_CONTROL(完全控制权限)。
 
             
            
           
          
            须知: 
           
            由于该参数值必定含有<和>,作为命令运行时,必须使用引号转义(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)。 
            
            | 
        
        
         | 
           config  | 
         
           附加参数,可选  | 
         
           运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。  | 
        
        
         | 
           e  | 
         
           附加参数,可选  | 
         
           指定终端节点。  | 
        
        
         | 
           i  | 
         
           附加参数,可选  | 
         
           指定用户的AK。  | 
        
        
         | 
           k  | 
         
           附加参数,可选  | 
         
           指定用户的SK。  | 
        
        
         | 
           t  | 
         
           附加参数,可选  | 
         
           指定用户的securitytoken。  | 
        
       
      
      
     
      
 
      
       每次命令只能选择设置sc、acl和aclXml中的一个。
       
      
     
     
    
   
  
   后续操作
   通过桶ACL授予指定账号一定权限后,被授权用户即可使用自己的身份凭证(访问密钥AK和SK)通过OBS Browser+挂载外部桶的方式访问该桶。
   授予匿名用户一定权限后,匿名用户可以在不经过任何身份认证的情况下访问该桶。此处的匿名用户可以是注册用户,也可以是非注册用户。注册用户可以直接通过以上两种方式访问桶,而非注册用户一般可以通过以下方式访问桶:
   
    - 通过桶的访问域名,在浏览器中直接打开,可以查看到桶内对象列表。
 
    - 通过在第三方系统配置桶的访问域名,与桶直接对接。