通过资源组实现RAM用户鉴权

创建ECI资源时,您可以指定所属的资源组,以便对资源进行分组管理。本文介绍如何通过资源组控制RAM用户的权限,实现RAM用户只能操作特定资源组内的ECI资源。

背景信息

资源组是在阿里云账号下进行资源分组管理的一种机制,可以帮助您解决单个阿里云账号内的资源分组和授权管理的问题。资源组的使用说明如下:

  • 一个资源组可以包含不同地域的云资源。例如:资源组A中可以包含华北2(北京)地域的实例和华东1(杭州)地域的实例。

  • 同一个账号内不同资源组中,相同地域的资源可以进行关联。例如:资源组A中华北2(北京)地域的实例可以加入到资源组B中华北2(北京)地域的VPC内。

  • 资源组会继承RAM用户的全局权限,即:如果您授权RAM用户管理所有的阿里云资源,那么阿里云账号下所有的资源组都会在该RAM用户中显示出来。

应用场景

每个ECI资源(ECI实例、镜像缓存)必须且只能属于一个资源组。创建ECI资源时,您可以指定资源组,如果没有指定资源组,则该资源将加入到默认资源组中。

说明

对于已创建的ECI资源,如果想要修改资源组,可至资源管理控制台资源组页面进行操作。具体操作,请参见跨资源组转移资源

您可以将不同用途的ECI资源分别加入到多个资源组中,并为每个资源组设置不同的RAM用户作为管理员,从而实现分组、分权管理ECI资源。

例如:如果您的ECI实例分别用于生产环境和测试环境,您可以将ECI实例分别加入到生产资源组和测试资源组中,授权RAM用户A可以操作生产资源组中的ECI实例,授权RAM用户B可以操作测试资源组中的ECI实例。配置完成后,当产品进行测试时,由RAM用户B操作测试资源组中的ECI实例。当产品需要上线时,由RAM用户A对生产资源组中的ECI实例进行操作。两套环境由不同的RAM用户进行管理,可以很好地控制权限,避免不必要的误操作。

配置流程

按以下场景为示例,创建多个资源组对ECI资源进行分组,并授权RAM用户只能操作特定资源组的ECI资源:

  • 新增两个资源组:生产资源组、测试资源组。

  • 新增两个RAM用户:RAM用户A具备生产环境的AliyunECIFullAccess权限,RAM用户B具备测试环境的AliyunECIFullAccess权限。

    说明

    AliyunECIFullAccess是RAM提供的系统策略,包含操作ECI资源的所有权限。

配置流程如下:

  1. 创建两个资源组。具体操作,请参见创建资源组

  2. 创建两个RAM用户。具体操作,请参见创建RAM用户

  3. 分别为两个资源组设置对应的RAM用户作为管理员。具体操作,请参见添加RAM身份并授权

    授权时,授权主体请输入RAM用户,权限可以选择AliyunECIFullAccess权限。

  4. 指定资源组创建ECI实例。

    • 如果通过弹性容器实例售卖页创建,请在其他设置(选填)页面指定资源组。

    • 如果调用CreateContainerGroup创建,请传入资源组ID(ResourceGroupId)。

预期结果

按配置流程配置分组、分权管理ECI实例后,预期结果如下:

  • 在弹性容器实例控制台上,RAM用户只能查看和操作有权限的资源组中的ECI资源。

  • 调用各API接口时,RAM用户只能查看和操作有权限的资源组中的ECI资源。例如:

    • CreateContainerGroup

      创建ECI实例时,必须要传入正确的资源组ID,才可以通过鉴权;如果没有传入资源组ID,或者传入的资源组ID不正确,则鉴权不通过。

      说明

      如果RAM用户具备默认资源的权限,则无需传入资源组ID,ECI实例将默认将加入到默认资源组中。

    • DescribeContainerGroups

      查询ECI实例信息时,必须要传入正确的资源组ID,才可以通过鉴权;如果没有传入资源组ID,或者传入的资源组ID不正确,则鉴权不通过。

      说明

      如果传入的ECI实例ID与资源组ID不匹配,即ECI实例不属于该资源组时,即使资源组ID正确,也无法查看ECI实例的信息。

    • DescribeContainerLog

      查询ECI实例的日志时,无需传入资源组ID,系统将自动检索ECI实例所属的资源组并进行鉴权。

    • DeleteContainerGroup

      删除ECI实例时,无需传入资源组ID,系统将自动检索ECI实例所属的资源组并进行鉴权。