天翼云媒体存储的访问控制可以管理访问权限,访问权限描述的是网络用户(包括天翼云用户和匿名用户)对存储资源可以进行哪些具体操作,因此一个访问权限可以表示成三个必要的组成元素:身份、资源、操作。
访问权限的元素
构成访问权限的三个元素,包括:身份、资源、操作。
访问权限的元素说明如下:
元素 | 说明 |
---|---|
身份 | 用户注册天翼云账号的时候,系统会创建一个用于登陆天翼云服务的账号身份。而没有账号的互联网用户,我们称之为匿名用户。 |
资源 | 天翼云对象存储的基本资源包括存储桶(Bucket)和对象(Object),它们有与之相关的子资源。 存储桶的子资源包括:生命周期配置信息、静态网站托管配置信息、版本控制配置信息、访问控制信息、桶标签信息、跨域资源共享配置信息。 对象的子资源包括:对象的访问控制信息。 |
操作 | 天翼云媒体存储的操作分为存储桶操作和对象操作。 |
访问控制的类型
天翼云媒体存储中的各种资源的权限默认为私有,即只有资源的所有者可以访问。资源所有者可以通过桶策略、桶ACL和对象ACL等方式授予其他用户资源的访问权限。
各个访问控制方式说明如下:
方式 | 说明 | 应用场景 |
---|---|---|
桶策略 | 作用于桶及桶内对象。通过设置桶策略,可以授权给不同类型或不同标识的用户操作桶及桶内对象的访问权限。 | 当需要允许其他天翼云用户(或匿名用户)对该桶进行访问控制时,可以使用桶策略的方式授权相应的读写权限。 当不同的用户需要对桶有不同的访问控制需求时,可以使用桶策略,分别授权给用户不同的访问权限。 |
桶ACL | 作用于桶,通过桶ACL可为用户授权桶及桶内对象的基本读写权限。 | 当其他账号需要对桶进行读写时,可以使用桶ACL,将读写权限开放给该用户,该用户就可以通过XstorBrowser、API&SDK等方式访问到该桶。 |
对象ACL | 作用于具体对象,通过对象ACL可为用户授权具体对象的基本读写权限。 | 当其他天翼云用户(或匿名用户)需要访问某个单独的对象时,桶策略就无法适用了,而对象ACL可以将该对象的权限授权给其他用户。 当需要使用网络链接直接访问对象时。一般使用对象ACL,通过链接的方式开放给所有用户进行读取操作。 需要注意的是,修改对象ACL后,需删除历史链接或重新获取链接地址,否则过期的链接会导致无法正常访问资源。 |
基于策略的访问控制
访问策略仅作用于存储桶,桶策略(Bucket Policy)使用JSON格式的数据管理指定用户对天翼云媒体存储资源可执行的操作。
访问控制策略的元素
一条访问控制策略包含的基本元素说明如下表:
元素 | 说明 |
---|---|
版本(Version) | 描述访问控制策略的版本信息,当前版本只能是"2012-10-17"。 |
语句(Statement) | 描述一项或多项赋权的详细信息。 |
效力(Effect) | 描述语句中权限产生的结果是允许还是禁止,只能是"allow"或"deny"两种情况。效力属于必填项。 |
操作(Action) | 描述语句中赋予的权限,必填项。 |
委托人(Principal) | 描述策略赋权的实体,例如用户、用户组等。 |
资源(Resource) | 描述策略授权的具体资源。资源属于必填项。 资源采用六段式描述,段与段之间使用冒号分隔。 |
条件(Condition) | 描述策略生效的约束条件,非必填项。 |
更多关于桶策略的介绍可参考桶策略。
基于ACL的访问控制
访问控制列表(AccessControlList,ACL)可以作用于存储桶和对象,桶ACL(Bucket ACL)和对象ACL(Object ACL)使用XML语言描述。
作为存储桶的和对象的子资源,每个存储桶和对象都有一个默认的ACL,ACL定义了用户或用户组对资源具有何种类型的访问权限。
使用ACL进行访问控制有如下限制:
- 桶和对象的所有者默认具有对该资源的完整权限,且无法删除和修改。
- 匿名用户无法成为资源的所有者,此时对象资源的所有者为存储桶的所有者。
- 每个资源的ACL最多可以设置100条授权信息。
更多关于ACL的介绍可参考:ACL。
桶策略和ACL的关系
桶ACL可以授权用户对桶及桶内对象进行读写和权限控制操作,而桶策略可以授权用户操作桶的更多高级设置。
对象ACL则是授权用户对桶内对象进行具体的读写操作。
如何选择?
- 以下情况推荐使用桶策略:
- 不同的用户需要使用不同的权限时。
- 用户需要使用桶的高级配置功能时。
- 以下情况推荐使用ACL:
- 需要对单独对象进行额外的授权时。
- 需要开放某个对象给所有匿名用户访问时。
- 仅对桶或对象需要基础的读写权限时。
映射关系
桶ACL用于桶基本的读写权限设置,而桶策略用于授权更精细化的访问权限,包括资源与动作。桶ACL是基本的桶策略,可以被桶策略替代管理桶的访问权限。
桶策略动作的映射关系如下表:
ACL权限 | 选项 | 对应桶策略高级设置中的动作 |
---|---|---|
桶访问权限 | 读取权限 | HeadBucket ListBucket ListBucketVersions ListBucketMultipartUploads |
桶访问权限 | 写入权限 | PutObject DeleteObject DeleteObjectVersion |
ACL访问权限 | 读取权限 | GetBucketAcl |
ACL访问权限 | 写入权限 | PutBucketAcl |
对象ACL和桶策略的映射关系如下表:
对象ACL权限 | 选项 | 对应桶策略高级设置中的动作 |
---|---|---|
对象访问权限 | 读取权限 | GetObject GetObjectVersion |
ACL访问权限 | 读取权限 | GetObjectAcl GetObjectVersionAcl |
ACL访问权限 | 写入权限 | PutObjectAcl PutObjectVersionAcl |
相关概念
- 账号/天翼云用户:指开通了天翼云的用户,该用户拥有对其资源的完全控制权限。
- 匿名用户:指未开通天翼云的用户或来自互联网的所有访客。