华为云服务器资源粒度授权_云淘科技

可授权的资源类型

资源粒度授权指的是能够指定用户对哪些资源具有执行操作的能力。弹性云服务器部分API支持资源粒度授权,即表示针对资源粒度授权的ECS操作,控制何时允许用户执行操作或是允许用户使用的特定资源。在权限策略中可授权的资源类型如表1所示。

表1 可授权的资源类型

资源类型

权限策略中的资源唯一标识

实例相关

ECS:$region:$domainId:instance:$instanceId

设置资源唯一标识时,您需要将$region、$domainId、$instanceId等变量参数修改为实际的参数信息,或者直接使用*通配符。

在生命周期管理~FPGA逻辑文件管理中,实例授权中被标记为“×”的即表示该API不支持对资源粒度授权。针对不支持资源粒度授权的ECS API,您仍可以向用户授予该操作的权限,但权限策略语句中的Resource必须指定为*。

策略示例:如果将如下策略授权给用户A,表示用户A只具有虚拟机9e0263ee-542a-4114-bf4a-5dd14d3f8a18的开机、关机和重启权限。

{
    "Version": "1.1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:cloudServers:start",
                "ecs:cloudServers:reboot",
                "ecs:cloudServers:stop"
            ],
            "Resource": [
                "ECS:*:*:instance:9e0263ee-542a-4114-bf4a-5dd14d3f8a18"
            ]
        }
    ]
}

使用标签控制资源的访问

弹性云服务器ECS资源绑定标签后,您可以使用标签为资源做分类并控制访问。在策略中,您可以定义多个标签,然后将一个或多个策略附加到IAM用户或用户组。如果要控制IAM用户可以访问哪些资源,您可以创建自定义策略并使用标签来实现访问控制。

步骤一:主账号创建与授权IAM策略

本步骤将使用主账号新建一个自定义策略policyTest,并将自定义策略policyTest授权给IAM用户A。

使用主账号登录IAM控制台。
创建自定义策略policyTest,如下所示,您可以在策略主体中为ECS实例设置多个标签。

{
    "Version": "1.1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:cloudServers:start",
                "ecs:cloudServers:reboot",
                "ecs:cloudServers:stop"
            ],
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "g:ResourceTag/team": [
                        "dev"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecs:cloudServers:list",
                "ecs:cloudServers:showServer",
                "ecs:cloudServers:showServerTags"
            ]
        },
        {
            "Effect": "Deny",
            "Action": [
                "ecs:cloudServers:batchSetServerTags"
            ]
        }
    ]
}

权限策略

策略内容

说明

允许带标签资源的开机/关机/重启权限

“g:ResourceTag/team”:”dev”

允许用户A对带有标签“team=dev”的虚拟机进行开机/关机/重启操作。

允许查询虚拟机详情与标签的接口权限

ecs:cloudServers:list

ecs:cloudServers:showServer

ecs:cloudServers:showServerTags

ECS控制台上用户需要查看虚拟机和标签的权限。

不允许操作标签相关的接口权限

ecs:cloudServers:batchSetServerTags

禁止用户A操作资源上绑定的标签,避免用户因修改标签导致没有权限。

将自定义策略授权给您希望控制访问的IAM用户或组,本步骤中将自定义策略policyTest授权给IAM用户A。

步骤二:主账号为已有资源绑定特定标签

您可以为已有的ECS实例绑定特定标签,实现对已有ECS实例的访问控制。

登录管理控制台。
进入弹性云服务器详情页,单击“标签”。
单击“添加标签”,创建team:dev标签,并绑定至已有ECS实例。

步骤三:IAM子用户访问带标签的ECS实例

用户A登录ECS控制台,操作带标签的ECS实例。

登录ECS管理控制台。
选择地域后,查看该地域全部ECS实例列表。
根据标签过滤出有操作权限的ECS实例。
对有操作权限的ECS实例进行开机、关机或重启。

在生命周期管理~FPGA逻辑文件管理中,标签授权中被标记为“×”的即表示该API不支持使用标签对资源进行访问控制。针对不支持标签授权的ECS API,您仍可以向用户授予该操作的权限,但权限策略语句中的Condition不能通过g:ResourceTag指定标签键值。

父主题: 权限和授权项

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家