AutoScaling 标签鉴权使用场景实践

简介: 某公司购买了阿里云资源,为了保证阿里云资源能最大的节省使用成本,公司开通了阿里云弹性伸缩服务,其中一一部分资源归属于team1 团队,一部分资源归属于team2 团队,如何对team1 和team 2 使用的子账户进行权限分配,达到各个团队只能管理属于自己团队的资源。

什么是标签鉴权

假设某公司购买了阿里云的资源,需要对各个部门使用阿里云弹性伸缩服务进行权限的细分,因为阿里云存在访问控制服务,很容易我们就想到通过对子账户的权限设置可以达到对各个子账户的权限控制,如果公司需要分组管理资源,或者按照各个部门的职能进行对资源的权限控制,单纯的通过,限制子账户的操作,已经不能解决实际问题,所以访问控制提供标签鉴权来对资源进行分组授权

场景假设

某公司购买了阿里云资源,为了保证阿里云资源能最大的节省使用成本,公司开通了阿里云弹性伸缩服务,其中一一部分资源归属于team1 团队,一部分资源归属于team2 团队,如何对team1 和team 2 使用的子账户进行权限分配,达到各个团队只能管理属于自己团队的资源

思路分析

要想达到权限分配能达到预期效果必须满足以下几点:

  1. 各个团队在新建自己的弹性伸缩服务必须带上自己团队的标签才能新建
  2. 各个团队只能操作带有自己团队标签的弹性伸缩服务

前期准备

准备伸缩组资源

准备数个弹性伸缩组,部分带上team: team1 的标签,部分带上team:team2 的标签


  1. 为各个团队准备如下策略

团队1策略:

{

   "Statement": [

       {

           "Action": "*",

           "Condition": {

               "StringEquals": {

                   "acs:RequestTag/team": [

                       "team1"

                   ]

               }

           },

           "Effect": "Allow",

           "Resource": "*"

       },

       {

           "Action": "*",

           "Condition": {

               "StringEquals": {

                   "acs:ResourceTag/team": [

                       "team1"

                   ]

               }

           },

           "Effect": "Allow",

           "Resource": "*"

       },

       {

           "Action": [

               "*:List*",

               "*:Describe*",

               "ess:DescribeRegions",

               "ess:CreateScheduledTask",

               "ess:ModifyScheduledTask",

               "ess:DescribeScheduledTasks",

               "ess:DeleteScheduledTask",

                "ess:CreateAlarm",

                "ess:DescribeAlarms",

                "ess:ModifyAlarm",

                "ess:EnableAlarm",

                "ess:DeleteAlarm"

           ],

           "Effect": "Allow",

           "Resource": "*"

       }

   ],

   "Version": "1"

}


团队2策略:


{

   "Statement": [

       {

           "Action": "*",

           "Condition": {

               "StringEquals": {

                   "acs:RequestTag/team": [

                       "team2"

                   ]

               }

           },

           "Effect": "Allow",

           "Resource": "*"

       },

       {

           "Action": "*",

           "Condition": {

               "StringEquals": {

                   "acs:ResourceTag/team": [

                       "team2"

                   ]

               }

           },

           "Effect": "Allow",

           "Resource": "*"

       },

       {

           "Action": [

               "*:List*",

               "*:Describe*",

               "ess:DescribeRegions",

               "ess:CreateScheduledTask",

               "ess:ModifyScheduledTask",

               "ess:DescribeScheduledTasks",

               "ess:DeleteScheduledTask",

                "ess:CreateAlarm",

                "ess:DescribeAlarms",

                "ess:ModifyAlarm",

                "ess:EnableAlarm",

                "ess:DeleteAlarm"

           ],

           "Effect": "Allow",

           "Resource": "*"

       }

   ],

   "Version": "1"

}

给各自团队的子账户授权

如何为子账户授权详情请见子账户授权帮助文档

验证控制台效果

创建资源必须带团队的标签

不带团队标签创建,预期失败

带团队标签创建,预期成功


操作的资源必须含有团队的标签

操作其他团队的资源,预期不成功

操作自己团队的资源,预期成功


目录
相关文章
|
5月前
|
监控 Serverless 对象存储
Serverless 应用引擎常见问题之用ECI部署Traefik时设置如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
281 2
|
5月前
|
SQL 存储 监控
|
运维
使用资源编排为云资源批量绑定标签
本场景介绍利用资源编排服务ROS(Resource Orchestration Service)在资源栈中创建资源,并同时为资源绑定标签,提升运维效率。
134 0
|
12月前
|
监控 Cloud Native 安全
使用Linkerd实现流量管理:学习如何使用Linkerd的路由规则来实现流量的动态控制
使用Linkerd实现流量管理:学习如何使用Linkerd的路由规则来实现流量的动态控制
78 0
|
Kubernetes 负载均衡 容器
Kubernetes LoadBalancer使用场景例子及配置步骤
Kubernetes 的 LoadBalancer 类型的服务用于将流量从集群外部的负载均衡器路由到集群内的服务。它通常用于公共云提供商(如 AWS、GCP、Azure)或者其他支持这种负载均衡机制的环境中。 以下是一个使用场景的例子:假设你在 Kubernetes 集群中部署了一个 web 应用程序,并希望将该应用程序暴露给外部用户,以便他们可以通过公共网络访问这个应用程序。你可以使用 LoadBalancer 类型的服务来实现这一目标。 下面是配置步骤: 1. 创建一个 `Service` 对象,并设置 `type: LoadBalancer`。 ```yaml apiVersio
1859 0
|
监控 Dubbo Linux
微服务 热点流控 规则-授权 系统规则 自定义返回
微服务 热点流控 规则-授权 系统规则 自定义返回
93 0
|
弹性计算 开发者
通过伸缩规则创建弹性伸缩方案-操作演示|学习笔记
快速学习通过伸缩规则创建弹性伸缩方案-操作演示
通过伸缩规则创建弹性伸缩方案-操作演示|学习笔记
|
测试技术 Serverless vr&ar
Knative 灰度发布和自动弹性|学习笔记(二)
快速学习Knative 灰度发布和自动弹性
160 0
Knative 灰度发布和自动弹性|学习笔记(二)
|
测试技术 Serverless vr&ar
Knative 灰度发布和自动弹性|学习笔记(一)
快速学习 Knative 灰度发布和自动弹性
146 0
Knative 灰度发布和自动弹性|学习笔记(一)
|
存储 Kubernetes Cloud Native
直播预告 | 容器服务 Knative 网关增强:支持 ALB
Knative 是基于 Kubernetes 之上提供的一款开源 Serverless 应用框架,能够帮助您部署和管理现代化的 Serverless 工作负载,打造企业级 Serverless 平台。ALB 面向应用层负载场景,具备自动弹性及大规模应用层流量处理能力。当前容器服务 Knative 提供 ALB 网关能力,充分发挥了流量、资源按需使用的 Serverless 能力。
直播预告 | 容器服务 Knative 网关增强:支持 ALB