对象存储BOS

    设置Bucket读写权限

    读写权限概述

    为了保障您存储在 BOS 中数据的高安全性,我们为您提供了丰富的多级权限管理能力。BOS的权限体系分为如下三级:

    • Bucket标准权限:业界常见的权限设置,分为私有、公共读和公共读写
    • 粗粒度自定义权限:较标准权限更细粒度的权限,可对指定用户设置 READ、LIST、WRITE、FULL_CONTROL 和 MODIFY 权限,并可以指定该权限可访问的资源,以及指定具有该权限的 IP 地址和 Referer 白名单等
    • 细粒度自定义权限:BOS 提供的 API 级别细粒度自定义权限。可设置的 API 类别包括 GetBucket、GetObject、PutObject、DeleteObject 在内的共 18 种。您可以对每种类别自定义相应的访问权限。

    权限定义

    三类权限的定义如下,您可以根据自身业务场景进行合适的权限设置。

    Bucket标准权限定义


    权限名称 权限描述
    私有
    • Bucket 创建者独享该 Bucket 的全部权限,其他人不能对该Bucket 写入数据,也不可访问读取该 Bucket。
    • 适用于存储私密文件的场景。
    公共读
    • Bucket 创建者独享该 Bucket 的全部权限,其他人可以访问读取该 Bucket 内的内容,但无权写入。
    • 适用于存储需要公众读取的文件的场景,如通知性文件、广告内容等。
    • 请注意:若开启该种权限,互联网上的所有用户都可以对该 Bucket 内的文件进行访问读取,请谨慎开启。
    公共读写
    • 包括 Bucket 创建者在内的任何人都可以访问和写入文件。
    • 请注意,若开启该种权限,互联网上的所有用户都可以对该 Bucket 内的文件进行读写操作,请谨慎开启。

    粗粒度自定义权限定义

    如果您认为上面的 Bucket 标准权限不能满足使用需求,您可以选择按需生成粗粒度自定义权限。改权限支持对指定用户设置 READ、LIST、WRITE、MODIFY 和 FULL_CONTROL 权限,并可指定该权限可访问的资源,以及指定具有该权限的 IP 地址和 Referer 白名单等。

    BOS 支持的各粗粒度自定义权限说明如下:

    权限名称 权限支持的操作
    READ 允许读取 Bucket 内的 Object 及其相关信息,但没有列表权限,具体操作权限包含 GetBucketLocationHeadBucketGetObjectGetObjectMetaListPartsRestoreObject。READ 权限对应的 API 既有 Bucket 级别的 API 如 GetBucketLocation,也有 Object 级别的 API 如 GetObject 和 ListParts。
    LIST 列表权限,可以查看指定 Bucket 下的 Object 列表以及获取所有未执行完的 MultipartUpload,具体操作权限包含 ListObjects ListMultipartUploads。LIST 权限对应的 API 只有 Bucket 级别的 API。
    WRITE 允许创建,覆盖和删除 Bucket 内的 Object,具体操作权限包含 PutObjectPostObjectInitiateMultipartUploadUploadPartCompleteMultipartUploadAbortMultipartUploadAppendObjectDeleteObjectDeleteMultipleObjectsFetchObject。WRITE 权限对应的 API 只有 Object 级别。
    MODIFY 用户仅可做 PutObject、AppendObject 等相关写入操作,不可做数据新增、删除操作。该权限主要功能是与 Deny 合用防止 Bucket 数据被篡改
    FULL_CONTROL 包含以上所有权限。FULL_CONTROL 除了具有 READ、LIST 和 WRITE 的所有操作权限以外,还包括以下操作权限 PutBucketAclGetBucketACLPutBucketCorsGetBucketCorsDeleteBucketCors。FULL_CONTROL 权限对应的 API 既有 Bucket 级别的 API 也有 Object 级别的 API。

    细粒度自定义权限定义

    如果您认为上述粗粒度自定义权限还不能满足您精细授权的需求,您可以使用 BOS 提供的细粒度自定义权限。BOS 支持的各细粒度自定义权限包括 Bucket 级别和 Object 级别。其中,Bucket相关权限说明如下:

    Bucket 相关权限 支持的操作
    GetBucket 该权限表示允许用户获取 Bucket 内容及其相关信息,例如,列出 Bucket 中 Objects、在三步上传时列出 Bucket中 的所有未执行完成的 Multipart Upload
    GetBucketAcl 该权限表示允许用户获取 Bucket Acl 的信息
    PutBucketAcl 该权限表示允许用户新增 Bucket Acl
    GetBucketCors 该权限表示允许用户获取 Bucket 上的跨域资源共享(CORS)的规则
    PutBucketCors 该权限表示允许用户在指定的 Bucket 上设定或者删除一个跨域资源共享(CORS)的规则
    GetBucketStyle 该权限表示允许用户获取或者列出 Bucket Style 的规则
    PutBucketStyle 该权限表示允许用户新增或者删除 Bucket Style 的规则
    GetBucketMirroring 该权限表示允许用户获取 Bucket 镜像回源的相关信息
    PutBucketMirroring 该权限表示允许用户新增或者删除 Bucket 镜像回源的相关信息
    GetCopyRightProtection 该权限表示允许用户获取 Bucket 的原图保护配置的信息
    PutCopyRightProtection 该权限表示允许用户开启或者关闭 Bucket 的原图保护功能

    Object 相关权限说明如下:

    Object 相关权限 支持的操作
    PutObject 该权限表示允许用户进行上传 Object 的相关操作,例如 PutObject、PostObject、AppendObject、FetchObject、CopyObject、三步上传、三步 Copy
    GetObject 仅支持 GetObjectGetObjectMeta 操作。GetObject 权限对应的 API 只有 Object 级别。
    DeleteObject 该权限表示允许用户进行删除单个 Object 或者批量删除 Object 的相关操作
    RenameObject 该权限表示允许用户对 Object 进行重命名(Rename)
    ListParts 该权限表示允许用户列出三步上传过程中指定的 UploadId 所有已经上传成功的 Part,用户可以查看三步上传的当前进度
    GetObjectMeta 该权限表示允许用户列出 Object 的 Meta 信息
    GetObjectAcl 该权限表示允许用户获取 Object Acl
    PutObjectAcl 该权限表示允许用户新增 Object Acl 和删除 Object Acl

    说明:

    • 细粒度和粗粒度权限 READ、LIST、WRITE、FULL_CONTROL、MODIFY 间互不影响;
    • 粗粒度权限的优先级高于细粒度权限。如果既配了粗粒度权限又配了细粒度权限,粗粒度权限会覆盖细粒度权限,以粗粒度为主;
    • Bucket 级别的细粒度是指对 Bucket 进行的相关操作;
    • Object 级别的细粒度是指对 Object 进行的相关操作。

    操作步骤

    1. 登录百度智能云官网

    登录百度智能云官网

    2. 进入 BOS 控制台

    在页面左侧导航栏中选择 "存储和 CDN > 对象存储 BOS" 进入 BOS 控制台。

    3. 权限配置

    点击 Bucket 名称进入 Bucket 管理目录后,可在上方导航栏选择 “基础配置” 后,点击页面中 "Bucket权限配置" 后的新增配置对该 Bucket 的权限进行配置。

    image.png

    4. Bucket标准权限配置

    可将 Bucket 设置为私有、公共读和公共读写,更多需求可选择自定义权限,点击 “添加自定义授权” 添加。

    image.png

    5. Bucket自定义权限配置

    在弹出的 Bucket 权限设置表单中,填写对应项进行授权。

    image.png

    对于自定义权限的相关配置流程,可以参考下表进行操作。

    配置名称 配置描述
    用户授权
    • 所有用户:指该配置对所有用户生效
    • 自定义:指该配置对指定用户生效。当选择 "自定义" 之后,您需要输入希望指定的用户 ID,用户 ID 可以在用户中心 查看。同时,BOS 支持同时设置多个用户 ID,每个用户 ID 分行填写即可(每行末尾不需要标点符号分隔)。若希望对全部用户生效,可以填写"*"(最多支持填写 1 个"*")。您也可以填入AuthenticatedUsers,代表授权给所有百度智能云注册用户
    授权效果
    • 用于设置授权用户的操作效果。若选择 "允许",那么将配置的权限以 "允许" 的效果授予用户;若选择 "拒绝",那么将配置的权限以 "拒绝" 的效果授予用户
    授权配置
    • 粗粒度自定义权限:包括READ、LIST、WRITE、MODIFY、FULL_CONTROL权限
    • 细粒度自定义权限:用户可通过点击"高级设置",展开细粒度权限列表,可按需勾选一个或多个,组合成新的自定义权限
    • 细粒度和粗粒度权限 READ、LIST、WRITE、FULL_CONTROL、MODIFY 间互不影响,可同时授权
    • 粗粒度权限的优先级高于细粒度权限。如果既配了粗粒度权限又配了细粒度权限,粗粒度权限会覆盖细粒度权限,以粗粒度为主。您可以根据自身需求对粗粒度权限和细粒度权限进行组合
    资源
    • 指定该权限作用的资源范围。
    • 其中 “包含” 的应资源即生效的资源范围。资源必须以 Bucket 名称开始;资源如果只有 1 个斜杠,不能以斜杠结尾,应以通配符 "*" 结尾;资源可以设置多个,每行 1 个且每行以通配符结尾,示例:`myBucket, myBucket/*,myBucket/myfolder/object*`。若资源留空,则等同于 "Bucket名称"。
    • 其中 “不包含” 的资源表示对指定范围之外的 Object 设置权限,配置填写方式同 "包含" 相同。如果选择了 “不包含” 但填写设置为空,相当于未配置。此时采用默认配置,即 Bucket 自身和 Bucket 内全部 Object。
    访问控制
    • Referer:设定 Referer 白名单。每个 Referer 以换行符分隔,每个Referer 最多支持一个通配符 `*`。同时可以勾选是否允许Referer 为空。选择 “允许 Referer 为空” 时,HTTP 请求中带白名单中的 Referer 和空 Referer 都允许访问;选择 “不允许 Referer 为空” 时,HTTP 请求只有带白名单的 Referer 可以访问,空 Referer 不允许。
    • IP地址:指定拥有该权限的 IP 地址列表,使用 CIDR 方式对 IP 进行标识。IP 地址可以设置多个,每行 1 个,且每行最多 1 个通配符`*`,并以`.*`结尾。示例:`192.168.1.*`或
      `192.168.0.1/24`
      `192.168.0.100`
      `192.168.*`
    • https 协议:白名单仅支持 http 和 https 协议。若您需要使用 https 协议,您需要勾选该选项
    • 访问时间:BOS 支持对该自定义权限设置访问时间,您可以在访问时间中设置最小时间和最大时间

    说明:

    • 若希望根据 IP 地址进行访问控制,您需要使用 Bucket 官方域名或者未开启 CDN 加速的自定义域名进行访问。若您使用 CDN 官方域名,或使用开启 CDN 加速的自定义域名访问 BOS,此时 IP 设置将无效。

    6. 完成配置

    配置完成后,您可以在 "Bucket权限配置" 中看到已生成的权限记录,并可通过"修改"和“删除”按钮对已有权限进行调整。

    image.png


    上一篇
    创建Bucket
    下一篇
    管理生命周期