通过标签鉴权实现云电脑精细化管理

无影云电脑支持通过权限管理实现对云电脑分组管理,既可以授予RAM用户查看或者操作云电脑的权限,也可以控制带有某个标签的云电脑的访问权限。本文介绍如何通过标签控制RAM用户的访问权限,使不同RAM用户可以拥有不同的云电脑的访问和操作权限。

背景信息

标签可用于标识云资源,实现资源的分类管理,可以帮助您从不同维度对具有相同特征的云资源进行分类、搜索和聚合;访问控制RAM可基于权限策略,管理用户身份,控制云资源的访问和操作权限。标签和访问控制RAM结合,将标签作为权限策略的匹配条件,可以实现云资源精细化权限管理。关于标签和访问控制的更多信息,请参见标签什么是访问控制

基于标签控制RAM用户权限(即标签鉴权)的逻辑如下:

image

使用限制

无影云电脑通过标签实现RAM用户精细化管理只支持云电脑管理,用户管理和资源管理等不支持通过标签控制访问权限。

仅支持以下地域:

地域

备注

华东1(杭州)

cn-hangzhou

华东2(上海)

cn-shanghai

华南1(深圳)

cn-shenzhen

华北2(北京)

cn-beijing

新加坡

ap-southeast-1

日本(东京)

ap-northeast-1

菲律宾(马尼拉)

ap-southeast-6

应用场景示例

本文配置的示例结合以下场景说明如何基于标签实现访问权限控制。假设创建一台云电脑,并为云电脑绑定标签owner:tony,其中owner为标签键,tony为标签值。具体场景如下:

  • 场景一:不允许创建不带标签的云电脑,创建云电脑时仅当云电脑绑定标签owner:tony才可以创建成功。

  • 场景二:只允许操作绑定标签owner:tony的云电脑,不允许操作没有绑定标签owner:tony的云电脑。

配置示例

以下配置将使用阿里云主账号新建一个自定义权限策略UseTagCreateECD(规定RAM用户需要指定标签owner:tony后方可创建、查看和操作云电脑),并将自定义权限策略UseTagCreateECD授权给RAM用户Testuser

步骤一:创建自定义策略

  1. 使用阿里云主账号登录RAM控制台

  2. 通过编辑模式创建自定义权限策略。具体操作,请参见通过脚本编辑模式创建自定义权限策略

    说明

    权限策略是一组访问权限的集合。结构包括版本号和授权语句列表,每条授权语句包括授权效果(Effect)、操作(Action)、资源(Resource)以及条件(Condition,可选项)。详细信息,请参见权限策略基本元素权限策略语法和结构

    在权限策略的Condition中,可以添加标签的条件以实现精细化的权限管理。

    以下示例中您可以在Condition字段中为云电脑设置多个标签条件来分组管理云电脑及其访问权限控制。支持的标签鉴权条件如下:

    标签鉴权条件

    说明

    acs:RequestTag

    限制在请求中必须传入特定的标签。

    如果API请求中没有标签参数,则不能使用acs:RequestTag,否则会导致鉴权失败。

    acs:ResourceTag

    限制指定的资源必须包含特定的标签。

    如果API请求中没有资源ID参数,则不能使用acs:ResourceTag,否则会导致鉴权失败。

    根据应用场景示例,基于标签管控访问权限时设计如下权限策略:

    应用场景

    权限策略

    场景一:不允许创建不带标签owner:tony的云电脑,创建云电脑时仅当云电脑绑定标签owner:tony才可以创建成功。

    {
        "Action":"ecd:CreateDesktops",
        "Effect":"Allow",
        "Condition":{
            "StringEquals":{
                "acs:RequestTag/owner":[
                    "tony"
                ]
            }
        },
        "Resource":"acs:ecd:*:*:ecddesktop/*"
    }

    场景二:只允许操作绑定标签owner:tony的云电脑,不允许操作没有绑定标签owner:tony的云电脑。

    {
        "Action":"ecd:*",
        "Effect":"Allow",
        "Condition":{
            "StringEquals":{
                "acs:ResourceTag/owner":[
                    "tony"
                ]
            }
        },
        "Resource":"acs:ecd:*:*:ecddesktop/*"
    }

    完整的权限策略展示如下:

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "ecd:CreateDesktops",
                "Effect": "Allow",
                "Condition": {
                    "StringEquals": {
                        "acs:RequestTag/owner": [
                            "tony"
                        ]
                    }
                },
                "Resource": "acs:ecd:*:*:ecddesktop/*"
            },
            {
                "Action": "ecd:*",
                "Effect": "Allow",
                "Condition": {
                    "StringEquals": {
                        "acs:ResourceTag/owner": [
                            "tony"
                        ]
                    }
                },
                "Resource": "acs:ecd:*:*:ecddesktop/*"
            },
            {
                "Action": [
                    "*:List*",
                    "*:Describe*",
                    "bss:PayOrder"
                ],
                "Effect": "Allow",
                "Resource": "*"
            },
            {
                "Action": "*",
                "Effect": "Allow",
                "Resource": [
                    "acs:ecd:*:*:officesite/*",
                    "acs:ecd:*:*:ecdpolicy/*",
                    "acs:ecd:*:*:ecdimage/*",
                    "acs:ecd:*:*:ecdbundle/*"
                ]
            }
        ]
    }
  3. 输入权限策略名称,单击确定

    例如输入UseTagCreateECD

步骤二:将自定义权限策略授权给RAM用户

  1. 在左侧导航栏选择身份管理 > 用户

  2. 创建RAM用户。

    请根据需要创建RAM用户。具体操作,请参见创建RAM用户

    说明

    如果已有RAM用户,请跳过此步骤。

  3. 为RAM用户授权。

    为RAM用户授予新创建的自定义权限策略。具体操作,请参见为RAM用户授权

步骤三:验证权限策略是否生效

  1. 使用RAM用户登录无影云电脑控制台或者登录OpenAPI平台

  2. 无影云电脑控制台或者调用API对云电脑进行相应操作,测试权限策略是否生效。

    • 创建云电脑来验证场景一

      • 绑定标签owner:tony的云电脑,可以成功创建该云电脑。

      • 未绑定标签owner:tony或者绑定了其他标签的云电脑,则会弹出如下对话框,提示没有权限。创建云桌面

    • 释放云电脑来验证场景二

      • 释放已绑定标签owner:tony的云电脑时,则可以释放该云电脑。

      • 释放未绑定标签owner:tony或绑定了其他标签的云电脑时,将会弹出如下对话框,提示没有权限。创建云桌面

支持标签鉴权的API接口说明

为指定的RAM用户授予标签鉴权的权限策略后,该RAM用户调用云电脑的API接口时支持使用标签鉴权管理云电脑。详细信息,请参见API参考(云电脑管控)