开发者社区> 问答> 正文

如何进行资源组鉴权?

如何进行资源组鉴权?

展开
收起
小天使爱美 2020-03-20 17:14:29 954 0
1 条回答
写回答
取消 提交回答
  • 资源组 资源组是用户对资源的一种划分与管理,目前阿里云的ECS、RDS、SLB等众多产品都已经支持资源组,ECI现在开始正式支持资源组。

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

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

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

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

    API 鉴权说明 创建API:CreateContainerGroup 主账号

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

    子账号

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

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

    查询API:DescribeContainerGroups 主账号

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

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

    子账号

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

    日志查询API:DescribeContainerLog 主账号

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

    子账号

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

    删除API:DeleteContainerGroup 主账号

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

    子账号

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

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

    常见使用场景 主账号下有三个资源组:默认资源组、test_a、test_b。

    主账号下有两个子账号:test、test2,前者只有test_a下的ECIfull权限,后者只有默认资源组下的ECIfull权限。

    创建API:CreateContainerGroup 主账号:

    主账号创建不传入资源组ID,加入默认资源组。 主账号创建传入资源组ID,且合法的,加入该资源组。 主账号创建传入资源组ID,且不合法,加入默认资源组。 子账号:

    子账号test创建不传入资源组ID,鉴权不通过。 子账号test创建传入不合法的资源组ID,鉴权不通过。 子账号test2创建不传入资源组ID,加入默认资源组。 子账号test创建传入正确的资源组ID,加入该资源组。 查询API:DescribeContainerGroups 主账号:

    主账号不设置资源组过滤条件,返回所有满足条件的资源。 主账号设置了资源组的过滤条件,合法,只返回该资源组下的满足条件的资源。 主账号设置了资源组的过滤条件,不合法,查询返回空。 子账号:

    子账号test查询没有设置资源组ID,鉴权不通过。 子账号test查询设置了资源组ID,不合法,鉴权不通过。 子账号test查询设置了资源组ID,合法,返回该资源组下的过滤资源。 子账号test查询设置了资源组ID,合法,但是传入的resourceId不在该资源组内,无法查看返回空。 日志查询API:DescribeContainerLog 主账号:

    可以任意查询默认资源组内资源。 可以任意查询test_a资源组内资源。 子账号:

    子账号test查询自己资源组下的资源,鉴权通过。 子账号test查询非自己资源组下的资源,鉴权不通过。 删除API:DeleteContainerGroup 主账号:

    可以任意删除默认资源组下资源。 可以任意删除test_a资源组下资源。 子账号:

    子账号test删除自己资源组下的资源,鉴权通过。 子账号test删除非自己资源组下的资源,鉴权不通过。

    2020-03-20 17:15:33
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《阿里云资源保障服务,让您从容应对资源波峰》 立即下载
Terraform - 管理云资源的正确姿势 立即下载
Terraform-管理云资源的正确姿势 立即下载