前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用ACL,轻松管理对存储桶和对象的访问!

使用ACL,轻松管理对存储桶和对象的访问!

作者头像
云存储
发布2020-05-26 15:49:01
2.1K0
发布2020-05-26 15:49:01
举报

访问控制与权限管理是腾讯云对象存储 COS 最实用的功能之一,经过开发者的总结沉淀,已积累了非常多的最佳实践。读完本篇,您将了解到如何通过ACL,对存储桶和对象进行访问权限设置。

什么是ACL

访问控制列表(ACL)是基于资源的访问策略选项之一 ,可用来管理对存储桶和对象的访问。使用 ACL 可向其他主账号、子账号和用户组,授予基本的读、写权限。

ACL 支持的控制粒度:

  • 存储桶(Bucket)
  • 对象键前缀(Prefix)
  • 对象(Object)

ACL 的管理权限有以下限制:

  • 仅支持对腾讯云的账户赋予权限
  • 仅支持读对象、写对象、读 ACL、写 ACL 和全部权限等五个操作组
  • 不支持赋予生效条件
  • 不支持显式拒绝效力

ACL 的控制元素

当创建存储桶或对象时,其资源所属的主账号将具备对资源的全部权限,且不可修改或删除,此时主账户使用 ACL,可以赋予其他腾讯云账户的访问权限。

如下提供了一个存储桶的 ACL 示例。其中的100000000001表示主账号,100000000011为主账号下的子账号,100000000002表示另一个主账号。ACL 包含了识别该存储桶所有者的 Owner 元素,该存储桶所有者具备该存储桶的全部权限。同时 Grant 元素授予了匿名的读取权限,其表述形式为http://cam.qcloud.com/groups/global/AllUsers的 READ 权限。

代码语言:javascript
复制
<AccessControlPolicy>
  <Owner>
    <ID>qcs::cam::uin/100000000001:uin/100000000001</ID>
    <DisplayName>qcs::cam::uin/100000000001:uin/100000000001</DisplayName>
  </Owner>
  <AccessControlList>
    <Grant>
      <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RootAccount">
        <ID>qcs::cam::uin/100000000001:uin/100000000001</ID>
        <DisplayName>qcs::cam::uin/100000000001:uin/100000000001</DisplayName>
      </Grantee>
      <Permission>FULL_CONTROL</Permission>
    </Grant>
    <Grant>
      <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
        <URI>http://cam.qcloud.com/groups/global/AllUsers</URI>
      </Grantee>
      <Permission>READ</Permission>
    </Grant>
  </AccessControlList>
</AccessControlPolicy>
1. 权限被授予者
  • 主账号 可以对其他主账号授予用户访问权限,使用 CAM 中对委托人(principal)的定义进行授权。描述为:
代码语言:javascript
复制
qcs::cam::uin/100000000002:uin/100000000002
  • 子账号 可以对主账号下的子账号(如100000000011),或其他主账号下的子账号授权,使用 CAM 中对委托人(principal)的定义进行授权。描述为:
代码语言:javascript
复制
qcs::cam::uin/100000000001:uin/100000000011
  • 匿名用户 可以对匿名用户授予访问权限,使用 CAM 中对委托人(principal)的定义进行授权。描述为:

http://cam.qcloud.com/groups/global/AllUsers

2. ACL支持的权限操作组

操作组

授予存储桶

授予前缀

授予对象

READ

列出和读取存储桶中的对象

列出和读取目录下的对象

读取对象

WRITE

创建、覆盖和删除存储桶中的任意对象

创建、覆盖和删除目录下的任意对象

不支持

READ_ACP

读取存储桶的 ACL

读取目录下的 ACL

读取对象的 ACL

WRITE_ACP

修改存储桶的 ACL

修改目录下的 ACL

修改对象的 ACL

FULL_CONTROL

对存储桶和对象的任何操作

对目录下的对象做任何操作

对对象执行任何操作

3. 标准 ACL 描述

COS 支持一系列的预定义授权,称之为标准 ACL,下表列出了标准 ACL 的授权含义。

注意:由于主账号始终拥有 FULL_CONTROL 权限,以下表格中不再对此特别说明。

标准 ACL

含义

(空)

此为默认策略,其他人无权限,资源继承上级权限

private

其他人没有权限

public-read

匿名用户组具备 READ 权限

public-read-write

匿名用户组具备 READ 和 WRITE 权限,通常不建议在存储桶赋予此权限

ACL 使用方法

1. 使用控制台操作ACL

  • 对存储桶设置 ACL

以下示例表示允许另一个主账号对某个存储桶有读取权限:

  • 对对象设置 ACL

以下示例表示允许另一个主账号对某个对象有读取权限:

注意:如使用子账号访问存储桶或对象出现无权限访问的提示,请先通过主账号为子账号授权,以便能够正常访问存储桶。

2. 使用 API 操作 ACL

  • 存储桶 ACL

API

操作名

操作描述

PUT Bucket acl

设置存储桶 ACL

设置指定存储桶访问权限控制列表

GET Bucket acl

查询存储桶 ACL

查询存储桶的访问控制列表

  • 对象 ACL

API

操作名

操作描述

PUT Object acl

设置对象 ACL

设置存储桶中某个对象的访问控制列表

GET Object acl

查询对象 ACL

查询对象的访问控制列表

注:API文档,详见https://cloud.tencent.com/document/product/436/10111

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云存储 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 权限被授予者
  • 2. ACL支持的权限操作组
  • 3. 标准 ACL 描述
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档