【存储】十分钟从入门到精通(下)——对象存储服务OBS权限配置实践

举报
云技术搬运工 发表于 2020/09/29 09:32:43 2020/09/29
【摘要】 您是否也遇到过类似的问题或者困扰? 1、隔壁的主账户给了子用户创建一个桶,但是没有给他设置桶策略,子账户访问报403,困惑了一整天。 2、楼下是另外一个子账号,为了OBS 控制台报无权限访问,百思不得其解。 3、对面一个子账户上传了一个文件,抓破头也无法分享给其他人。 这些问题或者困扰各不相同,下面将分别介绍高级桶策略和ACL应用来解答这些问题和困惑。

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

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

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

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

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

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

高级桶策略介绍:

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

桶策略参数:

1.png


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

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

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

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

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

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

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

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

2.png


控制台:

3.png


对应代码模式:

4.png


应用案例:

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

其中账户IDA账户的账号ID

用户IDA用户a租户的用户ID

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

5.png

6.png



 

高级桶策略与IAM授权对比

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

7.png


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

9.png

8.png


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

10.png


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

 11.png


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

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

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

12.png

13.png


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

14.png


ACL介绍:

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

 

应用案例:

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

 

15.png


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

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

16.png


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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。