当前位置:主页 > 查看内容

资源组鉴权 - 弹性容器实例

发布时间:2021-09-17 00:00| 位朋友查看

简介:资源组 资源组是用户对资源的一种划分与管理,目前阿里云的ECS、RDS、SLB等众多产品都已经支持资源组,ECI现在开始正式支持资源组。 通过资源组对资源的划分可以是根据资源的用途特性划分,也可以是对用户权限的管理。 比如公司通过统一的阿里云账号购买云资……

资源组

资源组是用户对资源的一种划分与管理,目前阿里云的ECS、RDS、SLB等众多产品都已经支持资源组,ECI现在开始正式支持资源组。

通过资源组对资源的划分可以是根据资源的用途特性划分,也可以是对用户权限的管理。

比如公司通过统一的阿里云账号购买云资源,但是有的是用于测试环境,有的是用于生产环境,这时候资源组就是比较使用,通过资源组对资源进行分组管理,可以很好的划分测试与生产环境下的资源。

本文重点讲解是ECI的资源组与RAM用户权限管理的结合使用场景。

效果

在没有资源组之前,如果阿里云账号给RAM用户授权ECI相关的权限,那么他的权限可以覆盖到账号下的所有ECI,能创建、修改、删除(如果有)所有的ECI。当阿里云账号的各个RAM用户的资源需要进行隔离的时候,可能就会产生冲突。有了资源组之后就可以将RAM用户的权限缩小在一个资源组内,即RAM用户只能操作该资源组下的资源,操作其他资源组的资源会因越权而被阻止。

API 鉴权说明

创建API:CreateContainerGroup

阿里云账号

如果是阿里云账号创建,权限最大。用户可以添加资源至账号下的任意资源组。如果用户没有传入资源组,则会默认添加资源至默认资源组。

RAM用户

如果RAM用户的权限被约束在某个资源组内。那么创建资源时必须传入资源组id(如果刚好授权的资源组是默认资源组,可以不用传,因为如果用户没有传入资源组,则会添加到账号下的默认资源组);如果用户传入了资源组,就会鉴权该资源组。

如果RAM用户的权限没有被约束在一个资源组内,创建没有影响,会自动加入默认资源组。

查询API:DescribeContainerGroups

阿里云账号

如果是阿里云账号创建,权限最大,默认也会返回所有资源,不存在资源组的约束。

但是,如果用户传入了资源组进行过滤,我们会返回该资源组下的满足条件的资源。阿里云账号有这样的权限。

RAM用户

对于被约束在某个资源组下的RAM用户,查询的时候资源组是必传的,否则鉴权不通过。资源组校验通过后,才会进行查询。查询到的资源也都是该资源组下的。

日志查询API:DescribeContainerLog

阿里云账号

大账号拥有绝对的权限,可以查询账号下任意ECI的容器日志。

RAM用户

无需用户传入资源组,我们会自动帮用户找到这个资源对应的资源组(如果资源加入过任何资源组),并进行鉴权,如果通过就继续,不通过就挡掉。防止越权操作。

删除API:DeleteContainerGroup

阿里云账号

大账号拥有绝对的权限,可以删除账号下的所有资源。

RAM用户

对于该API,同样无需用户传入资源组,我们会自动帮用户找到这个资源对应的资源组(如果资源加入过任何资源组),并进行鉴权,如果通过就继续,不通过就挡掉。防止越权操作。

资源生命周期管理

目前ECI还不支持用户修改资源组,即资源只能在创建的时候加入指定的资源组或默认资源组,资源删除的时候会自动从资源组移除。

常见使用场景

阿里云账号下有三个资源组:默认资源组、test_a、test_b。

阿里云账号下有两个RAM用户:test、test2,前者只有test_a下的ECIfull权限,后者只有默认资源组下的ECIfull权限。

创建API:CreateContainerGroup

阿里云账号:

  • 阿里云账号创建不传入资源组ID,加入默认资源组。

  • 阿里云账号创建传入资源组ID,且合法的,加入该资源组。

  • 阿里云账号创建传入资源组ID,且不合法,加入默认资源组。

RAM用户:

  • RAM用户test创建不传入资源组ID,鉴权不通过。

  • RAM用户test创建传入不合法的资源组ID,鉴权不通过。

  • RAM用户test2创建不传入资源组ID,加入默认资源组。

  • RAM用户test创建传入正确的资源组ID,加入该资源组。

查询API:DescribeContainerGroups

阿里云账号:

  • 阿里云账号不设置资源组过滤条件,返回所有满足条件的资源。

  • 阿里云账号设置了资源组的过滤条件,合法,只返回该资源组下的满足条件的资源。

  • 阿里云账号设置了资源组的过滤条件,不合法,查询返回空。

RAM用户:

  • RAM用户test查询没有设置资源组ID,鉴权不通过。

  • RAM用户test查询设置了资源组ID,不合法,鉴权不通过。

  • RAM用户test查询设置了资源组ID,合法,返回该资源组下的过滤资源。

  • RAM用户test查询设置了资源组ID,合法,但是传入的resourceId不在该资源组内,无法查看返回空。

日志查询API:DescribeContainerLog

阿里云账号:

  • 可以任意查询默认资源组内资源。

  • 可以任意查询test_a资源组内资源。

RAM用户:

  • RAM用户test查询自己资源组下的资源,鉴权通过。

  • RAM用户test查询非自己资源组下的资源,鉴权不通过。

删除API:DeleteContainerGroup

阿里云账号:

  • 可以任意删除默认资源组下资源。

  • 可以任意删除test_a资源组下资源。

RAM用户:

  • RAM用户test删除自己资源组下的资源,鉴权通过。

  • RAM用户test删除非自己资源组下的资源,鉴权不通过。


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:子账号鉴权 - 弹性容器实例 下一篇:没有了

推荐图文


随机推荐