• 沒有找到結果。

方式 被授权用

● PUT上传,POST上传,

上传段,初始化上传段

● 以下情况使用桶策略: ACL访问权限和桶策略动作的映射关系请参见A.2 桶策略和ACL的关系。

OBS 权限控制原则

基于最小权限原则,权限控制策略的结果默认为Deny, 显式的Deny始终优先于 Allow。例如,IAM权限授权了用户访问对象的权限,但是桶策略拒绝了该用户访问对 象的权限,且没有ACL时,该用户不能访问对象。

没有策略授予Allow权限时,默认情况即为Deny权限。当有策略授权Allow权限,且没 有其他策略Deny该权限时,Allow的权限才能生效。例如,某个桶已经存在多条Allow 权限的桶策略,再新增Allow权限的桶策略,会在原权限的基础上进行叠加,增大用户 的权限;如果新增Deny权限的桶策略,则会根据Deny优先原则调整用户的权限,即使 Deny策略中定义的动作在其他桶策略中Allow。

1-3 访问策略授权过程

桶策略、IAM权限和ACL的Allow和Deny作用结果如图1-4所示。

1-4 桶策略、IAM 权限和 ACL 的 Allow 和 Deny 作用结果

相关概念

● 帐号:用户注册华为云后自动创建,该帐号对其所拥有的资源和IAM用户具有完 全的访问控制权限。

● IAM用户:由管理员在IAM中创建的用户,是云服务的使用者,对应员工、系统或 应用程序,具有身份凭证(密码和访问密钥),可以登录管理控制台或者访问 API。

● 匿名用户:未注册华为云的普通访客。

● 日志投递用户组:用于投递OBS桶及对象的访问日志。由于OBS本身不能在用户 的桶中创建或上传任何文件,因此在需要为桶记录访问日志时,只能由用户授予

权限配置指南 1 OBS 权限控制概述

日志投递用户组一定权限后,OBS才能将访问日志写入指定的日志存储桶中。该 用户组仅用于OBS内部的日志记录。

2 权限控制方式介绍

2.1 IAM权限 2.2 桶策略 2.3 ACL

2.1 IAM 权限

IAM 权限简介

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

对于OBS,IAM权限作用于OBS所有的桶和对象。如果要授予IAM用户操作OBS资源的 权限,则需要向IAM用户所属的用户组授予一个或多个OBS权限。

OBS部署时不区分物理区域,为全局级服务。授权时,在全局级服务中设置权限,访 问OBS时,不需要切换区域。

根据授权精细程度分为角色和策略。

● 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该 机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间 存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角 色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达 到企业对权限最小化的安全管控要求。

● 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资 源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业 对权限最小化的安全管控要求。例如:针对OBS服务,管理员能够控制IAM用户 仅能对某一个桶资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行 权限拆分,OBS支持的API授权项请参见权限和授权项说明。

说明

由于缓存的存在,对用户、用户组以及企业项目授予OBS相关的角色和策略后,大概需要等待 10~15分钟权限才能生效。

权限配置指南 2 权限控制方式介绍

IAM中为各云服务预置了系统权限,方便您快速完成基础权限配置,表2-1为OBS的所

Administrator 拥有该权限的用户拥有除IAM外,其他所 有服务的所有执行权限。

系统角色 无

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

系统角色 无

OBSAdministrator 拥有该权限的用户为OBS管理员,可以对

帐号下的所有OBS资源执行任意操作。 系统策略 无 OBS Buckets

Viewer 拥有该权限的用户可以执行列举桶、获取 桶基本信息、获取桶元数据的操作。

系统角色 无

OBSReadOnlyAcces s

OBSOperateAccess 拥有该权限的用户可以执行OBS

ReadOnlyAccess的所有操作,在此基础 操作名称 Tenant

Admini strator

Tenant

Guest OBS Adminis trator

OBSBuckets Viewer

OBSReadOnly Access

OBSOperate Access

列举桶 可以 可以 可以 可以 可以 可以

操作名称 Tenant Admini strator

Tenant

Guest OBS Adminis trator

OBSBuckets Viewer

OBSReadOnly Access

OBSOperate Access

操作名称 Tenant Admini strator

Tenant

Guest OBS Adminis trator

OBSBuckets Viewer

OBSReadOnly Access

OBSOperate Access

操作名称 Tenant Admini strator

Tenant

Guest OBS Adminis trator

OBSBuckets Viewer

OBSReadOnly Access

OBSOperate Access

多段上传 可以 不可以 可以 不可以 不可以 可以

列举已上 传段

可以 可以 可以 不可以 不可以 可以

取消多段 上传任务

可以 不可以 可以 不可以 不可以 可以

IAM 权限应用场景

IAM权限主要面向对同帐号下IAM用户授权的场景:

● 使用策略控制帐号下整个云资源的权限时,使用IAM权限授权。

● 使用策略控制帐号下OBS所有的桶和对象的权限时,使用IAM权限授权。

● 使用策略控制帐号下OBS指定资源的权限时,使用IAM权限授权。

策略结构&语法

策略结构包括:Version(策略版本号)和Statement(策略权限语句),其中 Statement可以有多个,表示不同的授权项。

2-1 策略结构

策略语法,示例:

权限配置指南 2 权限控制方式介绍

{ "Version": "1.1", "Statement": [ {

"Effect": "Allow", "Action": [

"obs:bucket:HeadBucket", "obs:bucket:ListBucket", "obs:bucket:GetBucketLocation"

],

"Resource": [ "obs:*:*:bucket:*"

],

"Condition": {

"StringEndWithIfExsits": {

"g:UserName": ["specialCharactor"]

}, "Bool": {

"g:MFAPresent": ["true"]

} } } ] }

2-3 策略语法参数

参数 说明

Version 标识策略的版本号:

● 1.0:RBAC策略。RBAC策略是将服务作为一个整体进行授 权,授权后,用户可以拥有这个服务的所有权限。

● 1.1:细粒度策略。相比RBAC策略,细粒度策略基于服务的 API接口进行权限拆分,授权更加精细,可以精确到具体操作 和具体资源。例如:您可以限制子用户只能访问某一个OBS桶 中某一个目录下的对象。

参数 说明

Statement 策略授权语句,描述策略的详细信息,包含Effect(效果)、

Action(动作)、Resource(资源)和Condition(条件)。其中 Condition为可选。

● Effect(效果)

作用包含两种:Allow(允许)和Deny(拒绝),系统预置策 略仅包含允许的授权语句,自定义策略中可以同时包含允许和 拒绝的授权语句,当策略中既有允许又有拒绝的授权语句时,

遵循Deny优先的原则。

● Action(动作)

对资源的具体操作权限,格式为:服务名:资源类型:操作,支 持单个或多个操作权限,支持通配符号*,通配符号表示所 有。OBS只有两种资源类型:bucket和object。

详细的Action描述请参见桶相关授权项和对象相关授权项。

● Resource(资源)

策略所作用的资源,格式为:服务名:region:domainId:资源

– "obs:*:*:bucket:*": 表示所有的OBS桶。

– "obs:*:*:object:my-bucket/my-object/*": 表示桶my-bucket 中“my-object”目录下的所有对象。

● Condition(条件)

您可以在创建自定义策略时,通过Condition元素来控制策略

Condition的条件值仅支持以下字符:-,./ a-zA-Z0-9_@#$

%&,如果条件值中包含不支持的字符,请考虑使用模糊匹配 的条件运算符,如:StringLike,StringStartWith等。

示例:

– "StringEndWithIfExists":{"g:UserName":

["specialCharactor"]}:表示当用户输入的用户名以

"specialCharactor"结尾时该条statement生效。

权限配置指南 2 权限控制方式介绍

参数 说明

– "StringLike":{"obs:prefix":["private/"]}:表示在列举桶内 对象时,需要指定prefix为private/或者包含private/这一子 字符串。

说明

● Resource(资源)级别细粒度授权特性会逐步在各个区域上线,需要使用该特性时请确保桶 所在区域已经支持。

● 使用Resource(资源)级别细粒度授权特性前,请提交工单到OBS,申请开通Resource(资 源)级别细粒度授权特性白名单。

IAM 权限通用配置方法

● 创建IAM用户名授权使用OBS

● 创建自定义策略 Tenant Guest权限。

{ "Version": "1.1",

"Statement": [

"Resource": [

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

2-4 桶策略模板

模板名称 被授权用

模板名称 被授权用

选择使用模板创建时,部分模板需要指定被授权用户,您也可以在原模板基础上修改

模板名称 被授权用

桶策略样例

"Sid":"AddCannedAcl", "Effect":"Allow",

"Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/

71f3901173514e6988115ea2c26d1999"]}, "Action":["PutObject","PutObjectAcl"], "Resource":["examplebucket/*"]

}

"Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/

71f3901173514e6988115ea2c26d1999"]},

"Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/

71f3901173514e6988115ea2c26d1999"]}, "Action":["*"],

"Resource":["examplebucket/*"]

}, {

"Sid":"test2", "Effect":"Deny",

"Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/

71f3901173514e6988115ea2c26d1999"]}, "Action":["DeleteObject"],

"Resource":["examplebucket/*"]

} ]}

● 示例4:向匿名用户授予指定对象的只读权限 "Action":["GetObject"],

"Resource":["examplebucket/exampleobject"]

} 围的条件键)。另请注意SourceIp值使用RFC 4632中描述的CIDR表示法。

{ "Statement": [

"Resource": "examplebucket/*", "Condition": {

"IpAddress": {"SourceIp": "192.168.0.0/24"}, "NotIpAddress": {"SourceIp": "192.168.0.1/32"}

} } ]}

2.3 ACL

访问控制列表(Access Control List,ACL)是一个指定被授权者和所授予权限的授权 列表。

● 桶创建时可以携带ACL,也可以创建成功后设置ACL;对象上传时可以携带ACL,

也可以上传成功后再单独设置。

OBS ACL是基于帐号级别的读写权限控制,权限控制细粒度不如桶策略和IAM权限。

一般情况下,建议使用IAM权限和桶策略进行访问控制。

OBS支持通过ACL对表2-6所示用户或用户组授予桶的访问权限。

权限配置指南 2 权限控制方式介绍

2-6 OBS 支持的被授权用户

权限 选项 描述

写入权限 此权限可以更新对应桶的权限控制列表。

桶的拥有者默认永远具有ACL的写入权限。

对象ACL的访问权限如表2-8所示:

2-8 对象 ACL 访问权限

权限 选项 描述

对象访问权限 读取权限 此权限可以获取该对象内容和元数据。

ACL访问权限 读取权限 此权限可以获取对应的对象的权限控制列表。

对象的拥有者默认永远具有ACL的读取权限 写入权限 此权限可以更新对象的权限控制列表。

对象的拥有者默认永远具有ACL的写入权限。

说明

每一次对桶/对象的授权操作都将覆盖桶/对象已有的权限列表,而不会对其新增权限。

ACL 应用场景

在以下场景,建议您使用桶ACL:

在以下场景,建议您使用桶ACL:

相關文件