OBS服务细粒度访问控制的两种实现方法的对比
【摘要】 当前有两种方式可以实现OBS服务的细粒度访问控制:
1、IAM的OBS策略,即 IAM上针对OBS服务的细粒度策略控制
2、OBS桶策略,即OBS桶自身的高级策略控制
本文将对这二者进行一次详细的对比分析。
当前有两种方式可以实现OBS服务的细粒度访问控制:
IAM的OBS策略,即 IAM上针对OBS服务的细粒度策略控制
OBS桶策略,即OBS桶自身的高级策略控制
本文将对这二者进行一次详细的对比分析。
两种策略的相同/相似之处
两种策略控制机制,都可以通过 “Web/普通视图”和 “JSON视图”两种方式进行策略的定义,如下图所示
并且它们的JSON代码定义都是由基本的 Statement 来构成,每个Statement都可包含 Effect、Action、Resource、Condition 这几个key,并且这些Key的含义也基本类似
IAM的OBS策略 和 OBS桶策略 的JSON视图实例对比
从两种策略的JSON表达式中看不同之处
OBS桶策略的每一个Statement必须包含一个 Principal -> ID 字段,指定一个或多个目标账号id(domain/xxx) 和 目标用户id(user/xxx);
IAM的OBS策略中每一个Statement中不需要指定账号和用户信息,因为这个信息是在用户组/委托授权的时候,动态确定的
——这就意味着一个OBS桶策略只能适用于一个账户/用户规则,而一个IAM的OBS策略可以适用于多个账户/用户规则Action 中的JSON元素格式不同:IAM的OBS策略中action格式形如 obs:bucket:GetBucketAcl,而OBS桶策略的action格式形如 GetBucketAcl
——这就意味着它们所支持的细粒度Action规则并不完全相同,具体内容详见官网描述的OBS桶策略支持的Action 、IAM的OBS策略支持的桶授权项 和 对象授权项
特别需要注意的是,“列举所有桶”、“创建桶”、“删除桶”等几个常用操作的权限控制,只能在IAM的OBS策略中被支持Resource 中的JSON元素格式也不同:OBS桶策略的每一个Statement中,Resource字段中只能包含一条规则,要么指定该桶本身,要么指定该桶内的对象;而IAM的OBS策略的每个Statement中,Resource字段可以同时指定多条规则,包含多个目标桶资源和多个对象资源
——这就意味着一条OBS桶策略只能适配该桶自身及桶内的对象,而一条IAM的OBS策略可以适配多个桶及桶内的对象,显然IAM的OBS策略工作的效率更高,如果多个桶的权限控制策略是一样的,只需要创建和维护一条IAM的OBS策略即可
两种策略的“项目”感知能力不同
华为云上的一个企业账号下,经常需要对各种云服务资源(自然也包括OBS服务)进行基于“项目”的“物理隔离(IAM项目机制)”或“逻辑隔离(企业项目机制)”,在这种情况下,对不同的“项目”的授权只能基于IAM策略。
总结
本质而言,“OBS桶策略”和“IAM的OBS策略”都是OBS资源与IAM管理的结合。
OBS桶策略是基于单个OBS Bucket的,可见的IAM体系要素也仅有“企业账户”和“IAM用户”两点而已,局限性很大
IAM策略是IAM体系中进行授权管理的基本要素,能够与IAM体系中其他的所有机制无缝结合,从而更灵活方便地实现各种华为云资源的分配和管理。OBS桶策略能够实现的所有功能,IAM的OBS策略都能够完成,并能实现对OBS服务整体性操作(而非单个OBS桶)的权限管
由此,优先推荐客户使用IAM的OBS策略实现OBS服务细粒度访问控制
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
- 《大话华为云OBS+IAM权限控制》连载 (二十四):对同一个用户组,建议不要同时进行IAM全局级授权和EPS项目级授权
- 《大话华为云OBS+IAM权限控制》连载 (二十五):已知用户名/密码,生成临时AK/SK构造OBS客户端的Python参考实现
- 《大话华为云OBS+IAM权限控制》连载 (二十三):通过EPS项目的用户和资源管理,可实现让指定用户只可见部分指定资源的效果
- 《大话华为云OBS+IAM权限控制》连载 (二十):企业项目服务(EPS)是对企业人力和物力资源进行逻辑管理的有效手段
- 《大话华为云OBS+IAM权限控制》连载 (二十二):一个云服务资源只能属于一个EPS项目,但一个IAM用户组可同时属于多个项目
评论(0)