权限介绍
更新时间:2024-06-24
权限定义
BOS 权限管理包括如下三类权限,您可以根据自身业务场景进行合适的权限设置。
Bucket标准权限定义
权限名称 | 权限描述 |
---|---|
私有 |
|
公共读 |
|
公共读写 |
|
粗粒度自定义权限定义
如果您认为上面的 Bucket 标准权限不能满足使用需求,您可以选择按需生成粗粒度自定义权限。该权限支持对指定用户设置 READ、LIST、WRITE、MODIFY 和 FULL_CONTROL 权限,并可指定该权限可访问的资源,以及指定具有该权限的 IP 地址和 Referer 白名单等。
BOS 支持的各粗粒度自定义权限说明如下:
权限名称 | 权限支持的操作 |
---|---|
READ | 允许读取 Bucket 内的 Object 及其相关信息,但没有列表权限,具体操作权限包含 GetBucketLocation、HeadBucket、GetObject、GetObjectMeta、ListParts、RestoreObject。READ 权限对应的 API 既有 Bucket 级别的 API 如 GetBucketLocation,也有 Object 级别的 API 如 GetObject 和 ListParts。 |
LIST | 列表权限,可以查看指定 Bucket 下的 Object 列表以及获取所有未执行完的 MultipartUpload,具体操作权限包含 ListObjects 和 ListMultipartUploads。LIST 权限对应的 API 只有 Bucket 级别的 API。 |
WRITE | 允许创建,覆盖和删除 Bucket 内的 Object,具体操作权限包含 PutObject、PostObject、InitiateMultipartUpload、UploadPart、CompleteMultipartUpload、AbortMultipartUpload、AppendObject、DeleteObject、DeleteMultipleObjects和FetchObject。WRITE 权限对应的 API 只有 Object 级别。 |
MODIFY | 用户仅可做 PutObject、AppendObject 等相关写入操作,不可做数据新增、删除操作。该权限主要功能是与 Deny 合用防止 Bucket 数据被篡改 |
FULL_CONTROL | 包含以上所有权限。FULL_CONTROL 除了具有 READ、LIST 和 WRITE 的所有操作权限以外,还包括以下操作权限 PutBucketAcl、GetBucketACL、PutBucketCors、GetBucketCors 和 DeleteBucketCors。FULL_CONTROL 权限对应的 API 既有 Bucket 级别的 API 也有 Object 级别的 API。 |
注意:
- MODIFY 仅包含 PutObject、AppendObject 等对已存在文件的写入操作,不包含文件新增与删除操作,若您需要禁止子用户或其他用户对已存在BOS文件的修改和删除操作,请配置显式 Deny ,Modify 与 DeleteObject 操作。
细粒度自定义权限定义
如果您认为上述粗粒度自定义权限还不能满足您精细授权的需求,您可以使用 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 | 仅支持 GetObject 和 GetObjectMeta 操作。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 进行的相关操作。