访问控制
百度智能云对象存储BOS提供读写权限ACL、粗细粒度的自定义授权策略、防盗链白名单等功能,实现存储资源访问的控制和管理。
读写权限
BOS为权限控制提供访问控制列表(ACL)。ACL是授予Bucket和Object访问权限的访问策略。 您可以在创建存储空间(Bucket)或上传对象(Object)时配置ACL,也可以在创建Bucket或上传Object后的任意时间内修改ACL。
Bucket ACL
Bucket ACL是Bucket级别的权限访问控制。目前有三种访问权限,含义如下:
- Bucket 标准权限:
业界常见的权限设置,分为私有、公共读和公共读写。
权限名称 | 权限说明 |
---|---|
私有(private) | Bucket 创建者独享该 Bucket 的全部权限,其他人不能对该Bucket 写入数据,也不可访问读取该 Bucket。 适用于存储私密文件的场景。 |
公共读(public-read) | Bucket 创建者独享该 Bucket 的全部权限,其他人可以访问读取该 Bucket 内的内容,但无权写入。 适用于存储需要公众读取的文件的场景,如通知性文件、广告内容等。 请注意:若开启该种权限,互联网上的所有用户都可以对该 Bucket 内的文件进行访问读取,请谨慎开启。 |
公共读写 (public-read-write) | 包括 Bucket 创建者在内的任何人都可以访问和写入文件。 请注意:若开启该种权限,互联网上的所有用户都可以对该 Bucket 内的文件进行读写操作,请谨慎开启。 |
但以上简单标准权限无法满足您自定义权限管理的需求时,您可以使用以下自定义权限管理
- 粗粒度自定义权限: 较标准权限更细粒度的权限,可对指定用户设置 READ、LIST、WRITE、FULL_CONTROL 和 MODIFY 权限,并可以指定该权限可访问的资源,以及指定具有该权限的 IP 地址和 Referer 白名单等。更多信息,请参见权限介绍-粗粒度自定义权限定义。
- 细粒度自定义权限: BOS 提供的 API 级别细粒度自定义权限。可设置的 API 类别包括 GetBucket、GetObject、PutObject、DeleteObject 在内的共 18 种。您可以对每种类别自定义相应的访问权限。 更多信息,请参见权限介绍-细粒度自定义权限定义。
Object ACL
Object ACL是Object级别的权限访问控制。目前有2种访问权限,含义如下:
权限名称 | 权限说明 |
---|---|
私有(private) | 只有该Object的Owner拥有该Object的读写权限,其他的用户没有权限操作该Object。 |
公共读(public-read) | 所有用户只有该Object的读权限,而Object Owner拥有该Object的读写权限。 |
细节说明:
- 如果 Object 没有设置权限,则 Object ACL 为空,默认以 Bucket 权限为准。
- Object ACL 优先级高于 Bucket ACL,例如用户设置了 Object 的权限是 public-read,无论 Bucket 是什么权限,该 Object 都可以被访问。
- 目前 Object ACL 鉴权只对 GetObjectMeta、GetObject、CopyObject、UploadPartCopy 四个接口生效。
更多信息,请参见Object权限控制。
IAM主子用户访问控制
在您的百度智能云账号下面,通过 IAM 可以创建具有自己 AccessKey 的子用户。您的百度智能云账号被称为主账号,创建出来的账号被称为子用户,使用子用户的 AccessKey 只能使用主账号授权的操作和资源,BOS已经接入IAM子用户系统,通过控制台多用户访问控制创建子用户,主用户通过关联策略实现授权给子用户,策略文件本质上是一个JSON文件。策略语句中permission和resource用来定义权限和资源,更多细节,请参考IAM主子用户访问控制。
STS临时授权
BOS可以通过STS机制实现第三方的临时授权访问。STS(Security Token Service)是百度智能云提供的临时授权服务。通过STS,您可以为第三方用户颁发一个自定义时效和权限的访问凭证。第三方用户可以使用该访问凭证直接调用百度智能云的API访问百度智能云资源。更多信息,请参见临时授权访问。
防盗链白名单
对象存储BOS是按使用量收费的服务。为了减少您存储于BOS的数据被其他人盗链而产生额外费用,BOS支持设置基于HTTP和HTTPS header中表头字段Referer的防盗链方法。
您可以设置防盗链白名单,仅允许指定的域名访问BOS资源,或者仅允许HTTP或HTTPS header中包含Referer字段的请求才能访问BOS资源。对于公共读或公共读写的Bucket,防盗链白名单可以有效防止盗链,保护您的合法权益。详情请参见设置Referer白名单。