本文介绍了如何利用标签对 ECS 实例、安全组、云盘、快照、镜像进行分组授权。

问题

我有多台 ECS 实例,希望不同的子用户只能看到和管理部分实例,应该如何做?

解决方案

假设您有 10 台 ECS 实例,您想将其中 5 台授权给 dev 团队,另外 5 台授权给 ops 团队。您希望每个团队只能看到被授权的机器,未被授权的机器不允许查看。

进行分组授权

您可以通过RAM实现这种功能。具体操作如下:

  1. 通过打标签,将 ECS 的资源进行分组。

    例如,将其中 5 台机器打上一对标签,标签键是 team,标签值是 dev。将另外 5 台机器打上另一对标签,标签键是 team,标签值是 ops。

    对一台机器打标签的操作如下:
    1. 在 ECS 控制台上选择一个实例,在对应的下拉菜单上选择更多 > 实例设置 > 编辑标签
    2. 单击新建标签,输入标签键和标签值。这里取标签键为 team,标签值为 dev。
  2. 创建两个用户组,比如分别是 dev 和 ops。然后为您的员工创建相应的用户账号,将不同的用户账号添加到不同的用户组。
  3. 创建两个自定义策略,分别授权给不同的用户组。
    比如,给 dev 组授权的自定义策略名称是 policyForDevTeam,策略内容如下:
    {
        "Statement": [
        {
            "Action": "ecs:*",
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ecs:tag/team": "dev"
                }
            }
        },
        {
            "Action": "ecs:DescribeTag*",
            "Effect": "Allow",
            "Resource": "*"
        }
        ],
        "Version": "1"
    }
    说明 如果您的自定义标签不同,那么上述策略中关于标签条件的描述需要进行相应的替换。

    在上述权限策略中,带有 Condition 的"Action": "ecs:*"部分用于过滤标签为"team": "dev"的资源,而"Action": "ecs:DescribeTag*"用于展示所有标签。当子用户在 ECS 控制台操作时,需要系统展示出所有标签供子用户选择,只有当子用户选择了标签键值后,系统才能根据用户选中的标签键值过滤出资源。

显示被授权实例

  1. dev 用户组中的子用户登录到 ECS 控制台。
    说明
    • 因子用户在 dev 用户组中,所以子用户继承了该用户组的权限。
    • 子用户登录到 ECS 控制台后,系统默认导航到 ECS 概览页,此时子用户看到的 ECS 实例数量为 0 。
  2. 到 ECS 列表页,确认控制台展示的当前地域是期望实例实际所在的地域。如果不是,请到控制台顶端的地域列表中切换到期望地域。
  3. 在 ECS 列表页,点击标签按钮,系统会展示出标签键的下拉列表,鼠标悬停在标签键上时,在标签键下拉列表的右侧会展示出对应的标签值,点击对应的标签值进行选择,此时系统可以过滤出相应资源。
    说明 一定要选中标签值之后,系统才可以过滤出相应资源。

利用标签对安全组、云盘、快照、镜像进行分组授权

利用标签对安全组、云盘、快照、镜像进行分组授权的方法与上述对实例分组授权的方法相同。

说明 镜像中只有自定义镜像支持打标签。