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

基于身份策略的授权(IAM新版)

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

表1 OBS系统策略

系统策略名称

描述

策略类别

OBSFullAccessPolicy

对象存储服务(OBS)管理员权限。

系统身份策略

OBSBucketsViewerPolicy

只有对象存储服务(OBS)获取桶列表、获取桶元数据、获取桶区域位置,无其他权限。

系统身份策略

OBSReadOnlyPolicy

只有对象存储服务(OBS)获取桶列表、获取桶元数据、列举桶内对象、查询桶位置权限,无其他权限。

系统身份策略

OBSBasicOperationsPolicy

具有对象存储服务(OBS)查看桶列表、获取桶元数据、列举桶内对象、查询桶位置、上传对象、获取对象、删除对象、获取对象ACL等对象基本操作权限。

系统身份策略

OBSAssumeLoggingPolicy

具有OBS服务桶日志委托上传对象相关权限。

系统身份策略

OBSConsoleFullAccessPolicy

具有对象存储服务(OBS)管理控制台使用所有权限。

系统身份策略

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

表2 常用操作与系统策略的关系

操作名称

OBSFullAccessPolicy

OBSBucketsViewerPolicy

OBSReadOnlyPolicy

OBSBasicOperationsPolicy

OBSAssumeLoggingPolicy

OBSConsoleFullAccessPolicy

获取桶列表

可以

可以

可以

可以

不可以

可以

创建桶

可以

不可以

不可以

不可以

不可以

可以

列举桶内对象

可以

不可以

可以

可以

不可以

可以

获取桶元数据

可以

可以

可以

可以

不可以

可以

获取桶区域位置

可以

可以

可以

可以

不可以

可以

删除桶

可以

不可以

不可以

不可以

不可以

可以

设置桶策略

可以

不可以

不可以

不可以

不可以

可以

获取桶策略

可以

不可以

不可以

不可以

不可以

可以

删除桶策略

可以

不可以

不可以

不可以

不可以

可以

设置桶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": "5.0",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:*:*"
                ]
            }
        ]
    }
  • 示例2:给用户授予桶内所有对象的列举和下载权限
    此策略表示用户可以对桶obs-example下的所有对象进行列举和下载。
    {
        "Version": "5.0",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:getObject",
                    "obs:bucket:listBucket"
                ],
                "Resource": [
                    "obs:*:*:object:obs-example/*",
                    "obs:*:*:bucket:obs-example"
                ]
            }
        ]
    }
  • 示例3:给用户授予桶内对象的列举和指定目录对象的下载权限
    此策略表示用户只能下载桶obs-example中“my-project/”目录下的所有对象,其他目录下的对象虽然可以列举,但无法下载。
    {
        "Version": "5.0",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:getObject",
                    "obs:bucket:listBucket"
                ],
                "Resource": [
                    "obs:*:*:object:obs-example/my-project/*",
                    "obs:*:*:bucket:obs-example"
                ]
            }
        ]
    }
  • 示例4:给用户授予桶的读写权限(限定目录)
    此策略表示用户可以对桶obs-example中“my-project”目录下的所有的对象进行列举、下载、上传和删除。
    {
        "Version": "5.0",
        "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": "5.0",
        "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": "5.0",
        "Statement": [
            {
                "Effect": "Deny",
                "Action": [
                    "obs:object:PutObject"
                ]
            }
        ]
    }
  • 示例7:给用户授予指定桶的修改桶存储类别权限以及桶内指定对象的删除权限

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

    {
        "Version": "5.0",
        "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"
                ]
            }
        ]
    }

相关文档