更新时间:2025-12-19 GMT+08:00
分享

基于角色与策略的授权

OBS服务支持基于角色与策略授权的授权模型。默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。

如果您通过IAM授权时,没有指定具体的桶和对象,那么使用IAM授予的权限对所有桶生效。

表1所示,包括了OBS的所有系统权限。基于角色与策略授权场景的系统策略与基于身份策略授权场景的并不互通。例如,如果您使用基于角色与策略的授权方式给用户授权,那么配置策略时,策略中的action需要使用基于角色与策略的授权项,并使用基于角色与策略的条件键和运算符。

表1 OBS系统权限

系统角色/策略名称

描述

类别

依赖关系

Tenant Administrator

拥有该权限的用户拥有除IAM外,其他所有服务的管理员权限。

系统角色

Tenant Guest

拥有该权限的用户拥有除IAM外,其他所有服务的只读权限。

系统策略

OBS Administrator

拥有该权限的用户为OBS管理员,可以对账号下的所有OBS资源执行任意操作。

系统策略

OBS Buckets Viewer

拥有该权限的用户可以执行获取桶列表、获取桶元数据、获取桶区域位置的操作,无其他权限。

系统角色

OBS ReadOnlyAccess

拥有该权限的用户可以执行获取桶列表、获取桶元数据、获取桶区域位置、列举桶内对象(不包含多版本)的操作,无其他权限。

说明:

拥有该权限的用户如果在管理控制台上列举对象失败,可能是因为桶中存在多版本对象。此时需要额外授予该用户列举多版本对象的权限(obs:bucket:ListBucketVersions),才能在控制台正常看到对象列表。

系统策略

OBS OperateAccess

拥有该权限的用户可以执行OBS ReadOnlyAccess的所有操作,在此基础上还可以执行上传对象、下载对象、删除对象、获取对象ACL等对象基本操作。

说明:

拥有该权限的用户如果在管理控制台上列举对象失败,可能是因为桶中存在多版本对象。此时需要额外授予该用户列举多版本对象的权限(obs:bucket:ListBucketVersions),才能在控制台正常看到对象列表。

系统策略

下表列出了OBS常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。

表2 常用操作与系统权限的关系

操作名称

Tenant Administrator

Tenant Guest

OBS Administrator

OBS Buckets Viewer

OBS ReadOnlyAccess

OBS OperateAccess

获取桶列表

可以

可以

可以

可以

可以

可以

创建桶

可以

不可以

可以

不可以

不可以

不可以

列举桶内对象

可以

可以

可以

不可以

可以

可以

获取桶元数据

可以

可以

可以

可以

可以

可以

获取桶区域位置

可以

可以

可以

可以

可以

可以

删除桶

可以

不可以

可以

不可以

不可以

不可以

设置桶策略

可以

不可以

可以

不可以

不可以

不可以

获取桶策略

可以

可以

可以

不可以

不可以

不可以

删除桶策略

可以

不可以

可以

不可以

不可以

不可以

设置桶ACL

可以

不可以

可以

不可以

不可以

不可以

获取桶ACL

可以

可以

可以

不可以

不可以

不可以

设置桶日志管理配置

可以

不可以

可以

不可以

不可以

不可以

获取桶日志管理配置

可以

可以

可以

不可以

不可以

不可以

设置桶的生命周期配置

可以

不可以

可以

不可以

不可以

不可以

获取桶的生命周期配置

可以

可以

可以

不可以

不可以

不可以

删除桶的生命周期配置

可以

不可以

可以

不可以

不可以

不可以

设置桶的多版本状态

可以

不可以

可以

不可以

不可以

不可以

获取桶的多版本状态

可以

可以

可以

不可以

不可以

不可以

设置桶的事件通知

可以

不可以

可以

不可以

不可以

不可以

获取桶的事件通知

可以

可以

可以

不可以

不可以

不可以

设置桶默认存储类型

可以

不可以

可以

不可以

不可以

不可以

获取桶默认存储类型

可以

可以

可以

不可以

不可以

不可以

设置桶的跨区域复制配置

可以

不可以

可以

不可以

不可以

不可以

获取桶的跨区域复制配置

可以

可以

可以

不可以

不可以

不可以

删除桶的跨区域复制配置

可以

不可以

可以

不可以

不可以

不可以

设置桶标签

可以

不可以

可以

不可以

不可以

不可以

获取桶标签

可以

可以

可以

不可以

不可以

不可以

删除桶标签

可以

不可以

可以

不可以

不可以

不可以

设置桶配额

可以

不可以

可以

不可以

不可以

不可以

获取桶配额

可以

可以

可以

不可以

不可以

不可以

获取桶存量信息

可以

可以

可以

不可以

不可以

不可以

设置桶清单

可以

不可以

可以

不可以

不可以

不可以

获取桶清单

可以

可以

可以

不可以

不可以

不可以

列举桶清单

可以

可以

可以

不可以

不可以

不可以

删除桶清单

可以

不可以

可以

不可以

不可以

不可以

设置桶的自定义域名

可以

不可以

可以

不可以

不可以

不可以

获取桶的自定义域名

可以

可以

可以

不可以

不可以

不可以

删除桶的自定义域名

可以

不可以

可以

不可以

不可以

不可以

设置桶的加密配置

可以

不可以

可以

不可以

不可以

不可以

获取桶的加密配置

可以

可以

可以

不可以

不可以

不可以

删除桶的加密配置

可以

不可以

可以

不可以

不可以

不可以

设置桶归档存储对象直读策略

可以

不可以

可以

不可以

不可以

不可以

获取桶归档存储对象直读策略

可以

可以

可以

不可以

不可以

不可以

删除桶归档存储对象直读策略

可以

不可以

可以

不可以

不可以

不可以

设置镜像回源规则

可以

不可以

可以

不可以

不可以

不可以

获取镜像回源规则

可以

可以

可以

不可以

不可以

不可以

删除镜像回源规则

可以

不可以

可以

不可以

不可以

不可以

设置DIS通知策略

可以

不可以

可以

不可以

不可以

不可以

获取DIS通知策略

可以

可以

可以

不可以

不可以

不可以

删除DIS通知策略

可以

不可以

可以

不可以

不可以

不可以

设置在线解压策略

可以

不可以

可以

不可以

不可以

不可以

获取在线解压策略

可以

可以

可以

不可以

不可以

不可以

删除在线解压策略

可以

不可以

可以

不可以

不可以

不可以

配置桶级默认WORM策略

可以

不可以

可以

不可以

不可以

不可以

获取桶级默认WORM策略

可以

可以

可以

不可以

不可以

不可以

设置桶的网站配置

可以

不可以

可以

不可以

不可以

不可以

获取桶的网站配置

可以

可以

可以

不可以

不可以

不可以

删除桶的网站配置

可以

不可以

可以

不可以

不可以

不可以

设置桶的CORS配置

可以

不可以

可以

不可以

不可以

不可以

获取桶的CORS配置

可以

可以

可以

不可以

不可以

不可以

删除桶的CORS配置

可以

不可以

可以

不可以

不可以

不可以

PUT上传

可以

不可以

可以

不可以

不可以

可以

POST上传

可以

不可以

可以

不可以

不可以

可以

复制对象

可以

不可以

可以

不可以

不可以

可以

下载对象

可以

可以

可以

不可以

不可以

可以

获取对象元数据

可以

可以

可以

不可以

不可以

可以

删除对象

可以

不可以

可以

不可以

不可以

可以

批量删除对象

可以

不可以

可以

不可以

不可以

可以

恢复归档存储或深度归档存储对象

可以

不可以

可以

不可以

不可以

不可以

追加写对象

可以

不可以

可以

不可以

不可以

可以

设置对象ACL

可以

不可以

可以

不可以

不可以

不可以

获取对象ACL

可以

可以

可以

不可以

不可以

可以

修改对象元数据

可以

不可以

可以

不可以

不可以

不可以

修改写对象

可以

不可以

可以

不可以

不可以

可以

截断对象

可以

不可以

可以

不可以

不可以

可以

重命名对象

可以

不可以

可以

不可以

不可以

可以

配置对象级WORM保护策略

可以

不可以

可以

不可以

不可以

不可以

列举桶中已初始化多段任务

可以

可以

可以

不可以

不可以

不可以

初始化上传段任务

可以

不可以

可以

不可以

不可以

可以

上传段

可以

不可以

可以

不可以

不可以

可以

拷贝段

可以

不可以

可以

不可以

不可以

不可以

列举已上传未合并的段

可以

可以

可以

不可以

不可以

可以

合并段

可以

不可以

可以

不可以

不可以

可以

取消多段上传任务

可以

不可以

可以

不可以

不可以

可以

OBS自定义策略样例

  • 示例1:给用户授予OBS的所有权限

    此策略表示用户可以对OBS进行任何操作,使用方式包括API、SDK、控制台及工具。

    由于用户登录OBS控制台时,会访问一些其他服务的资源,如CTS审计信息,CDN加速域名,KMS密钥等。因此除了配置OBS的权限外,还需要配置其他服务的访问权限。其中CDN属于全局服务,CTS、KMS等属于区域级服务,需要根据您实际使用到的服务和区域分别在全局项目和对应区域项目中配置Tenant Guest权限。
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:*:*"
                ]
            }
        ]
    }
  • 示例2:给用户授予桶内所有对象的列举和下载权限
    此策略表示用户可以对桶obs-example下的所有对象进行列举和下载。
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:GetObject",
                    "obs:object:GetObjectVersion",
                    "obs:bucket:ListBucket"
                ],
                "Resource": [
                    "obs:*:*:object:obs-example/*",
                    "obs:*:*:bucket:obs-example"
                ]
            }
        ]
    }
  • 示例3:给用户授予桶内对象的列举和指定目录对象的下载权限
    此策略表示用户只能下载桶obs-example中“my-project/”目录下的所有对象,其他目录下的对象虽然可以列举,但无法下载。
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:GetObject",
                    "obs:object:GetObjectVersion",
                    "obs:bucket:ListBucket"
                ],
                "Resource": [
                    "obs:*:*:object:obs-example/my-project/*",
                    "obs:*:*:bucket:obs-example"
                ]
            }
        ]
    }
  • 示例4:给用户授予桶的读写权限(限定目录)
    此策略表示用户可以对桶obs-example中“my-project”目录下的所有的对象进行列举、下载、上传和删除。
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:GetObject",
                    "obs:object:ListMultipartUploadParts",
                    "obs:bucket:ListBucket",
                    "obs:object:DeleteObject",
                    "obs:object:PutObject"
                ],
                "Resource": [
                    "obs:*:*:object:obs-example/my-project/*",
                    "obs:*:*:bucket:obs-example"
                ]
            }
        ]
    }
  • 示例5:给用户授予桶的所有权限
    此策略表示用户可以对桶obs-example进行任何操作。
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:*:*"
                ],
                "Resource": [
                    "obs:*:*:bucket:obs-example",
                    "obs:*:*:object:obs-example/*"
                ]
            }
        ]
    }
  • 示例6:拒绝用户上传对象

    拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则

    如果您给用户授予OBS OperateAccess的系统策略,但不希望用户拥有OBS OperateAccess中定义的上传对象的权限,您可以创建一条拒绝上传对象的自定义策略,然后同时将OBS OperateAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以执行除了上传对象外OBS OperateAccess允许的所有操作。拒绝策略示例如下:

    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Deny",
                "Action": [
                    "obs:object:PutObject"
                ]
            }
        ]
    }
  • 示例7:给用户授予指定桶的修改桶存储类别权限以及桶内指定对象的删除权限

    此策略表示用户可以修改桶obs-example的存储类别,以及对桶obs-example中“my-object.txt”对象进行删除。

    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:bucket:ListAllMyBuckets",
                    "obs:bucket:ListBucket"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:DeleteObject",
                    "obs:bucket:PutBucketStoragePolicy"
                ],
                "Resource": [
                    "OBS:*:*:object:obs-example/my-object.txt",
                    "OBS:*:*:bucket:obs-example"
                ]
            }
        ]
    }

相关文档