【华为云技术分享】十分钟从入门到精通(下)——OBS权限配置

时间:2024-02-23 14:00:08

上一篇我们介绍了OBS权限管理中统一身份认证和企业项目管理,本期我们继续介绍OBS权限管理中的高级桶策略和ACL应用。

您是否也遇到过类似的问题或者困扰?

1、隔壁的主账户给了子用户创建一个桶,但是没有给他设置桶策略,子账户访问报403,困惑了一整天。

2、楼下是另外一个子账号,为了OBS 控制台报无权限访问,百思不得其解。

3、对面一个子账户上传了一个文件,抓破头也无法分享给其他人。

这些问题或者困扰各不相同,下面将分别介绍高级桶策略和ACL应用来解答这些问题和困惑。

高级桶策略介绍:

桶策略是作用于配置桶策略的单个桶的。同时也提供代码模式配置方法,高级桶策略代码最多不能超过20KB。

桶策略参数:

1.png

 

(1)Effect,桶策略效果;指定本条策略描述的权限是允许请求还是拒绝请求。

(2)Action,桶策略动作;指定本条策略可以执行的操作。

(3)Condition,策略生效必须满足的条件,详情参考

https://support.huaweicloud.com/usermanual-obs/obs_03_0120.html

(4)Resource,资源;资源指桶或对象。您可以指定一个对象或对象集,当指定给对象集时,使用通配符(*),例如:file*。如果不输入,则表示指定资源为桶,且在动作处只能选择与桶相关的。多个资源使用英文逗号分隔。

(5)Principal,桶策略被授权用户。

“domain/账号ID”(表示被授权用户为xxx账号)。

“domain/账号ID:user/用户ID”(表示被授权用户为xxx账号下的xxx用户)

2.png

 

控制台:

3.png

 

对应代码模式:

4.png

 

应用案例:

步骤1:配置账号B的一个桶,允许账号A下的a租户只有上传权限,配置如下。

其中账户ID为A账户的账号ID

用户ID为A用户a租户的用户ID

资源为空代表桶本身,配置后a租户可以挂载外部桶但没有对象操作权限。

5.png

6.png

 

高级桶策略与IAM授权对比

(1)       IAM的OBS细粒度权限直接授权给IAM用户组,而OBS桶的自身细粒度规则目标只能是一个或者多个IAM用户,对于多用户场景创建和维护的效率较低,如下图所示。

7.png

 

(2)       IAM的OBS细粒度权限可以包含60个Bucket+Object动作规则,而OBS桶自身的细粒度策略中,支持的Bucket+Object动作规则只有34个,如下图所示。这也就意味着IAM的OBS细粒度权限精细度更高。

9.png

8.png

 

(3)       IAM的OBS细粒度权限还可以支持“列举所有桶”操作的权限控制,这样的全局性操作控制在OBS桶的自身高级策略中是无法实现的。

10.png

 

(4)       OBS桶的自定义桶策略,设定的Bucket访问权限只能针对该桶自己;而一条IAM的OBS细粒度权限则可以同时适配多个目标OBS桶。

 11.png

 

(5)       OBS桶的自定义桶策略,只能控制IAM用户的OBS访问权限,而不能控制其他云服务对OBS资源的访问权限的。IAM的OBS细粒度权限则可以通过委托授权来控制其他云服务对于OBS资源的访问权限。

(6)       不论是IAM的OBS细粒度权限控制,还是OBS桶自定义的高级桶策略中,桶的访问控制与对象的访问控制是分开定义的,在华为云的OBS服务中,桶的访问控制规则 与 对象的访问控制规则 是分开定义的,当前无法通过一条策略将桶本身和桶内对象都共享出去。

如下所示为OBS桶的自定义高级桶策略:

12.png

13.png

 

如下所示为IAM的OBS细粒度权限定义,也需要同时包含桶和对象两条规则

14.png

 

ACL介绍:

基于账号的访问控制。有一个很恰当的比喻:桶owner相当于房东,房东将桶出租给房客(子账户),子账户可以将贵重物品放到自己的房间里,但是房东没有权利去查看。房客可以给房东钥匙(设置对象ACL)赋予房东权限,使其有访问权限。

 

应用案例:

步骤1:账号A上传,B账号无权限下载

15.png

 

步骤2:可通过SDK,配置指定主账号具有对象下载权限;

上传者使用Java SDK配置指定账号权限。

16.png

 

这样对象的上传者,就可以将对象的权限赋予给桶owner。

点击这里,了解更多精彩内容