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

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 某上云企业希望进行权限动态管理,又不希望进行策略频繁变更的时候。可以基于标签进行授权,当添加标签的时候就有权限,删除标签的时候就没有权限。方便快捷的进行动态的权限管理。具体如何实现动态权限管理?本文将针对此问题进行介绍。

场景

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

  • 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
目录
相关文章
|
10天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
1月前
|
弹性计算 监控 数据可视化
ecs资源可视化
ecs资源可视化
21 3
|
25天前
|
弹性计算 运维 监控
ECS资源监控
ECS资源监控涉及CPU、内存、磁盘I/O、网络流量、系统负载和进程的关键指标,通过云服务商控制台、监控服务、API与SDK、运维工具进行实时监控和告警设置。支持历史数据查询、事件监控,以及使用Windows资源监视器和Linux系统工具进行操作系统层面监控。全面监控确保ECS实例稳定运行、资源有效利用和问题及时处理。如需特定云服务商的指导,请询问。
28 3
|
3月前
|
安全 Java Spring
Spring Security OAuth 资源服务器认证浅析
【1月更文挑战第18天】之前的几篇文章介绍了如何进行用户认证并向客户端分发 Token,以及 Token 是如何生成的,这篇分析一下,当客户端拿着 Token 去访问资源的时候,资源服务器是如何验证 Token 是否合法的。
50 2
|
3月前
|
机器学习/深度学习 搜索推荐 算法
推荐系统离线评估方法和评估指标,以及在推荐服务器内部实现A/B测试和解决A/B测试资源紧张的方法。还介绍了如何在TensorFlow中进行模型离线评估实践。
推荐系统离线评估方法和评估指标,以及在推荐服务器内部实现A/B测试和解决A/B测试资源紧张的方法。还介绍了如何在TensorFlow中进行模型离线评估实践。
187 0
|
29天前
|
JavaScript 前端开发 应用服务中间件
通过域名的方式访问服务器里的资源
通过域名的方式访问服务器里的资源
20 0
|
1月前
|
弹性计算 开发工具 对象存储
ECS实例通过OSS内网地址访问OSS资源
ECS实例通过OSS内网地址访问OSS资源
39 0
|
5月前
|
缓存 安全 算法
Spring Security OAuth 2.0 资源服务器— JWT
Spring Security OAuth 2.0 资源服务器— JWT
225 1
|
2月前
|
弹性计算 安全 API
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(1)
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(1)
570 2
|
2月前
|
弹性计算 运维 监控
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(2)
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(2)
561 0

相关产品

  • 云服务器 ECS