ECS基于标签动态进行资源权限管理

简介: 某上云企业希望进行权限动态管理,又不希望进行策略频繁变更的时候。可以基于标签进行授权,当添加标签的时候就有权限,删除标签的时候就没有权限。方便快捷的进行动态的权限管理。具体如何实现动态权限管理?本文将针对此问题进行介绍。
+关注继续查看

场景

某公司希望根据不同的角色对于资源进行管理。

  • datacenter成员: 授权访问带有project:datacenter的ECS所有资源。
  • bizcenter成员:授权访问带有project:bizcenter的ECS所有资源。
  • 资源生产者: 资源生产。
  • 资源授权管理者: 资源授权:对资源进行打标签, 需要资源具备权限则添加该标签,希望资源没有权限删除该标签就可以,不需要进行权限修改。

权限设计如下

datacenter成员

  • 子账号直接使用情况,具体到访问控制进行操作。
  • 属于该项目的成员所使用子账号通过授权下列权限就可以访问datacenter的资源。
  • 注意:在ecs控制台过滤资源时需要根据标签project:datacenter才能看到资源,默认情况没有筛选标签是看不到资源的。

授权策略设计如下:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "acs:ResourceTag/project": "datacenter"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:List*",
        "ecs:Describe*"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "acs:RequestTag/project": "datacenter"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "tag:List*",
        "ecs:DescribeTags",
        "ecs:DescribeResourceByTags",
        "ecs:DescribeTagKeys",
        "ecs:ListTagResources",
        "ecs:DescribeRegions",
        "ecs:DescribeZones",
        "ecs:DescribeDisk*",
        "ecs:DescribeSecurityGroup*",
        "ecs:DescribeInstanceTypes",
        "ecs:DescribeSnapshot*",
        "ecs:DescribeNetworkInterface*",
        "actiontrail:LookupEvents"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:InvokeCommand",
        "ecs:RunCommand",
        "ecs:StopInvocation",
        "ecs:SendFile"
      ],
      "Resource": "acs:ecs:*:*:instance/*",
      "Condition": {
        "StringEquals": {
          "acs:ResourceTag/project": "datacenter"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:InvokeCommand",
        "ecs:RunCommand",
        "ecs:StopInvocation",
        "ecs:SendFile"
      ],
      "Resource": "acs:ecs:*:*:command/*"
    }
  ]
}

bizcenter成员

  • 子账号通过固定角色使用该权限
  • 访问控制 控制台-身份管理-角色-创建角色,名称为bizcenter-member
  • 注意:在ecs控制台过滤资源时需要根据标签project:bizcenter才能看到资源,默认情况没有筛选标签是看不到资源的。

授权策略设计如下:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "acs:ResourceTag/project": "bizcenter"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:List*",
        "ecs:Describe*"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "acs:RequestTag/project": "bizcenter"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "tag:List*",
        "ecs:DescribeTags",
        "ecs:DescribeResourceByTags",
        "ecs:DescribeTagKeys",
        "ecs:ListTagResources",
        "ecs:DescribeRegions",
        "ecs:DescribeZones",
        "ecs:DescribeDisk*",
        "ecs:DescribeSecurityGroup*",
        "ecs:DescribeInstanceTypes",
        "ecs:DescribeSnapshot*",
        "ecs:DescribeNetworkInterface*",
        "actiontrail:LookupEvents"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:InvokeCommand",
        "ecs:RunCommand",
        "ecs:StopInvocation",
        "ecs:SendFile"
      ],
      "Resource": "acs:ecs:*:*:instance/*",
      "Condition": {
        "StringEquals": {
          "acs:ResourceTag/project": "bizcenter"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:InvokeCommand",
        "ecs:RunCommand",
        "ecs:StopInvocation",
        "ecs:SendFile"
      ],
      "Resource": "acs:ecs:*:*:command/*"
    }
  ]
}

  • bizcenter成员所使用子账号需要通过角色扮演bizcenter-member进行使用bizcenter的资源。

授权策略设计如下:

{
    "Statement": [
        {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Resource": "acs:ram:*:*:role/bizcenter-member"
        }
    ],
    "Version": "1"
}

资源生产者

  • 如果资源生产者是资源管理者则使用AliyunECSFullAccess权限即可。
  • 如果资源生产者生产的资源必须带有标签project:anyValue,则权限如下。

授权策略设计如下:

{
    "Version": "1",
    "Statement": [
         {
            "Effect": "Allow",
            "Action": [
                "ecs:Run*",
                "ecs:Create*",
                "ecs:Purchase*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "acs:RequestTag/project": "*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecs:List*",
                "ecs:Describe*",
                "vpc:DescribeVpcs",
                "vpc:DescribeVSwitches",
                "bss:PayOrder"
            ],
            "Resource": "*"
        }
    ]
}

资源授权管理者

  • 如果资源授权管理者必须对资源打上标签project:anyValue标签,则权限如下:
  • 如何识别资源标签规范可以使用标签策略,确保资源都可以进行正确的标签。

授权策略设计如下:

{
    "Version": "1",
    "Statement": [
         {
            "Effect": "Allow",
            "Action": [
                "ecs:Tag*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "acs:RequestTag/project": "*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "tag:*",
                "ecs:Untag*",
                "ecs:List*",
                "ecs:Describe*"
            ],
            "Resource": "*"
        }
    ]
}
相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
弹性计算
什么是云服务器ECS——产品计费——云服务器ECS的资源中
什么是云服务器ECS——产品计费——云服务器ECS的资源中自制脑图
64 0
什么是云服务器ECS——产品计费——云服务器ECS的资源中
|
12月前
|
弹性计算 关系型数据库 数据库
使用ROS部署ECS+SqlServer资源并通过PowerShell操作数据库
本文介绍如何通过ROS部署ECS+RDS+SqlServer资源,以及如何通过PowerShell操作SqlServer数据库。 注意:附录模板和截图中的commandtext部分仅为演示作用,请根据需求修改后使用。
87 0
|
存储 弹性计算 Linux
【ECS常见问题】中国内地用户购买其他国家或地区实例资源问题
中国内地用户购买其它国家或地区资源可以享受与阿里云中国内地资源相同的品质和服务吗? 是的,阿里云中国站为所有用户提供相同品质产品与服务,购买地域不同不会影响您在阿里云中国站所享受的服务权益。
【ECS常见问题】中国内地用户购买其他国家或地区实例资源问题
|
弹性计算 算法 安全
EasySDK: ECS库存资源推荐的利器
面对阿里云日益庞大的可用区数目,眼花缭乱的规格类型,繁复庞杂的定价策略,该如何选择合适的地域与可用区、合适的规格,该怎样设定预期价格,怎样才能避免库存资源不足?
EasySDK: ECS库存资源推荐的利器
|
弹性计算
【新功能】钉钉绑定ecs控制台,快速上云,高效操作资源。
钉钉绑定控制台,大大提高了用户对资源的可操作性和易用性。
3198 0
【新功能】钉钉绑定ecs控制台,快速上云,高效操作资源。
|
弹性计算 运维 NoSQL
高阶实践:强制TAG——必须带标签创建ECS 资源
基于标签(TAG)可以进行资源访问控制,但是我们怎么限制用户只有当有某个标签的时候才允许创建呢?本文接下来就针对ECS(弹性计算) 支持标签的资源:实例(instance)、磁盘(disk)、镜像(image)、网卡(eni)、快照(snapshot)、安全组(securitygroup)、密钥对(keypair)等。
3782 0
高阶实践:强制TAG——必须带标签创建ECS 资源
|
弹性计算 API 开发工具
标记(TAG)您的阿里云ECS资源
为了方便管理您的实例、镜像以及其他 阿里云 ECS 资源,您可以选择通过标签的形式为每个资源分配您自己的元数据。本主题介绍标签并说明如何创建标签。
12436 0
标记(TAG)您的阿里云ECS资源
|
弹性计算 API
如何使用标签(TAG RAM)控制对ECS 资源的访问?
如何创建RAM (Resource Access Management)策略以使用标签控制对 云服务器(Elastic Compute Service,ECS)实例的访问?
10574 0
|
弹性计算
阿里云ECS资源分组之创建资源支持资源分组
当账号里有100个镜像、多个不同业务的安全组、不同网段的VSwitch时,资源怎么高效管理是一个困扰账号owner的问题。为此,阿里云也推出了多种提速资源管理的工具,例如标签和资源组。 资源组是一种偏向解决方案的分组策略,有专门的控制台进行集合的资源操作(企业控制台)。在企业控制台可以对资源进行资源组间的转换,本文介绍的更偏向控制台操作(非OpenAPI操作),因此授权操作会直接在企业控制台
1783 0
相关产品
云服务器 ECS
推荐文章
更多