通过资源鉴权管理弹性伸缩

在协同使用资源的场景下,根据实际的职责权限,您可以为RAM用户授予不同的权限实现分权管理,从而提高管理效率,降低信息泄露风险。本文为您介绍如何通过资源鉴权控制RAM用户的权限,使RAM用户可以对不同弹性伸缩资源有不同的访问和操作权限。

背景信息

  • 阿里云的用户权限是基于权限策略为管理主体的,您可以根据不同职责(角色)配置RAM相关策略。在策略中,您可以自定义资源级别的授权,然后将一个或多个权限策略附加到RAM用户或用户组。关于权限策略的更多信息,请参见权限策略概览

  • 访问控制不支持资源级别的鉴权,会导致您在弹性伸缩资源管理方面的诸多不便,例如,大粒度地对某个地域的资源进行权限控制时受限。而采用弹性伸缩设置资源级别的鉴权,会使得您在管理弹性伸缩资源时更加地灵活。

    说明

    如果您需要了解访问控制的更多信息,请参见什么是访问控制

示例场景说明

本文以下列场景作为示例,说明如何实现资源鉴权。

场景描述

权限说明

场景1:先创建伸缩组,再设置资源级别的鉴权策略

例如:

  • 伸缩组1:例如,伸缩组名称为asg-001,且伸缩组ID为asg-bp17np35ywjwh2cx****

  • 伸缩组2:例如,伸缩组名称为asg-002,且伸缩组ID为asg-bp1c5pl2qc6ozgbl****

只允许操作伸缩组1的部分资源,不允许操作伸缩组2的任何资源。

场景2:先设置资源级别的鉴权策略,再创建伸缩组

只允许创建某个地域(例如杭州地域)的伸缩组,不允许创建其他地域(例如北京地域)的伸缩组。

不支持资源鉴权的API接口说明

为某RAM用户授予资源鉴权的权限策略后,该RAM用户调用下列API接口时不支持使用资源鉴权管理弹性伸缩。

接口

不支持资源鉴权

DescribeRegions

定时任务未绑定伸缩组时:

  • CreateScheduledTask

  • ModifyScheduledTask

  • DescribeScheduledTasks

  • DeleteScheduledTask

报警任务未绑定伸缩组时:

  • CreateAlarm

  • DescribeAlarms

  • ModifyAlarm

  • EnableAlarm

  • DeleteAlarm

操作步骤

说明

操作前,请确保已创建RAM用户。若未创建请您先创建RAM用户,具体操作,请参见创建RAM用户

场景1:先创建伸缩组,再设置资源级别的鉴权策略

  1. 创建2个伸缩组。

    具体操作,请参见配置伸缩组

    • 伸缩组1:例如,伸缩组名称为asg-001,且伸缩组ID为asg-bp17np35ywjwh2cx****

    • 伸缩组2:例如,伸缩组名称为asg-002,且伸缩组ID为asg-bp1c5pl2qc6ozgbl****

  2. 登录RAM控制台

  3. 创建自定义权限策略。

    具体操作,请参见创建自定义权限策略

    本步骤中的自定义权限策略可实现允许您在弹性伸缩控制台或者调用API对该伸缩组asg-001进行查看、修改和删除等操作,而不能对asg-002进行相应操作。

    自定义权限策略示例如下:

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "ess:*",
                "Resource": "acs:ess:cn-hangzhou:160998252992****:scalinggroup/asg-bp17np35ywjwh2cx****"
            },
            {
                "Effect": "Deny",
                "Action": "ess:*",
                "Resource": "acs:ess:cn-hangzhou:160998252992***8:scalinggroup/asg-bp1c5pl2qc6ozgbl****"
            },
            {
               "Effect": "Allow",
               "Action": [
                       "ess:DescribeRegions",
                       "ess:CreateScheduledTask",
                       "ess:ModifyScheduledTask",
                       "ess:DescribeScheduledTasks",
                       "ess:DeleteScheduledTask",
                       "ess:CreateAlarm",
                       "ess:DescribeAlarms",
                       "ess:ModifyAlarm",
                       "ess:EnableAlarm",
                       "ess:DeleteAlarm"
                    ],
                "Resource": "*"
            }
        ]
    }
  4. 将自定义权限策略授权给您希望控制访问的RAM用户。

    具体操作,请参见为RAM用户授权

  5. 在弹性伸缩控制台或者调用API对asg-001asg-002进行查看、修改和删除操作。

    您可以对伸缩组asg-001进行正常的查看、修改和删除等操作,而无法对asg-002进行相关操作,错误提示页面如下图所示,表示资源鉴权已生效。

    资源级别鉴权执行结果

场景2:先设置资源级别的鉴权策略,再创建伸缩组

  1. 登录RAM控制台

  2. 创建自定义权限策略。

    具体操作,请参见创建自定义权限策略

    本步骤中的自定义权限策略可实现在华东1(杭州)地域,您可以在弹性伸缩控制台或者调用API在该地域下创建伸缩组。而在华北2(北京)地域无法进行相应操作。

    自定义权限策略示例如下:

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "ess:*",
                "Resource": "acs:ess:cn-hangzhou:160998252992****:*"
            },
            {
                "Effect": "Deny",
                "Action": "ess:*",
                "Resource": "acs:ess:cn-beijing:160998252992****:*"
            },
            {  
               "Effect": "Allow",
               "Action": [
                       "ess:DescribeRegions",
                       "ess:CreateScheduledTask",
                       "ess:ModifyScheduledTask",
                       "ess:DescribeScheduledTasks",
                       "ess:DeleteScheduledTask",
                       "ess:CreateAlarm",
                       "ess:DescribeAlarms",
                       "ess:ModifyAlarm",
                       "ess:EnableAlarm",
                       "ess:DeleteAlarm"
                    ],
                "Resource": "*"                       
            }
        ]
    }
  3. 将自定义策略授权给您希望控制访问的RAM用户。

    具体操作,请参见为RAM用户授权

  4. 通过弹性伸缩控制台或者调用API创建伸缩组。

    您可以在华东1(杭州)地域下创建伸缩组,而在华北2(北京)地域无法创建伸缩组,错误提示页面如下图所示,表示资源鉴权已生效。

    资源级别鉴权执行结果

相关文档