ECS TAG功能详解

摘要: Tag(标签),阿里云提供的一种标记资源的方式,对资源添加标签可以方便地对资源进行标记,从而方便的进行资源的批量管理,现在ECS可以使用Tag标记的资源主要有以下几种:实例、磁盘、镜像、快照、安全组。 ### Tag基础 每个Tag是由两个部分组成,Key和Value。

Tag简述

Tag(标签),阿里云提供的一种标记资源的方式,对资源添加标签可以方便地对资源进行标记,从而方便的进行资源的批量管理,现在ECS可以使用Tag标记的资源主要有以下几种:实例、磁盘、镜像、快照、安全组。

Tag基础

每个Tag是由两个部分组成,Key和Value。Tag是很开放的配置,Tag的Key和Value可以取值几乎任意字符串。因此,Tag是一个可以方便对资源进行标记、分类的工具。

Tag使用限制

为了更合理使用,Tag在功能上有几个限制。

首先,一个资源上面已有的Tag不能超过10个,标签太多会导致标签本身难以管理
一个资源上Tag key不能相同,如果添加一个已有key的Tag,会使用新的Tag覆盖老的Tag

相同Tag相同类型的资源数量不建议超过500,相同Tag的资源数量太大,会弱化Tag的资源分类功能

Tag经典场景

标签划分

对于一般的资源管理需求,都是针对一个用户下数量较多的情况,当实例等数量较多时,对实例进行运维管理等操作就会变得比较困难,有时候甚至需要采取拆分账号的方式管理不同部门或者不同用途的资源。如果采用Tag进行资源的分类管理,会大大简化这个问题。

首先,我们可以针对实例的使用场景进行分类,在一般的开发场景中,机器一般有多个分类:开发测试环境、打包环境、生产环境等。这些机器的运维管理是绝对隔绝的,因此要在Tag上对其进行区分,在开发测试机器上,可以增加标签(增加方式详见下一节)key为env、value为test;在生产机器上,可以增加标签key为env、value为product。形成如下图的机器分类。

图片描述

之后再考虑按照使用人员进行的资源分类。对于资源保有多的,一个人进行资源的全部管理也是很困难的,所以需要进行基于人员的资源划分,我们可以在资源上,增加表示部门的标签,代表这些资源隶属于不同的部门。在增加了部门分类之后,机器分类如图:

图片描述

权限控制

只使用标签的资源分类,只能做到对资源进行标记、划分,无法进行实质的资源管控隔离,如果需要做到资源真正的使用者隔离,就需要同时结合RAM实现。

简单介绍下RAM,每个阿里云账号都可以创建多个子账号,这些子账号可以被授权管理阿里云账号的某些资源,这个授权操作是阿里云账号来管理的,相关文档见:https://help.aliyun.com/product/28625.html

我们这里就是使用子账号结合标签对资源进行不同分类的隔离,我们为每个部门创建一个管理员(子账号),即dep manager,然后授权每个子账号只能操作带有自己部门标签的资源。这样我们就把实例资源完全分给两个部门进行管理,同时,实例上也带有相关环境的标识。

图片描述

使用Tag的方式

接下来,详细描述下上述操作的具体步骤。

API操作

从API操作资源可以更清晰看到资源的变化过程,因此推荐使用API进行资源操作,相关文档在这里:https://help.aliyun.com/product/52507.html
对于接下来的操作,只需要安装python SDK,需要安装的包如下(ECS外的操作如RAM等通过控制台操作)

aliyun-python-sdk-core
aliyun-python-sdk-ecs

添加标签 页面操作

添加标签,需要的参数主要是资源id、资源类型、标签,注意region不要填错。下面是为资源添加标签的代码示例,一次调用最多可添加5个标签。

# common codes, 下次不再添加
# coding=utf-8
import logging
from aliyunsdkcore import client
from aliyunsdkcore.acs_exception.exceptions import ServerException, ClientException
from aliyunsdkecs.request.v20140526.AddTagsRequest import AddTagsRequestclint = client.AcsClient('AK', 'SK', 'cn-qingdao')  # region 按实际填写
logging.basicConfig(level=logging.INFO,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt='%a, %d %b %Y %H:%M:%S')def _get_response(request):try:ret = clint.do_action_with_exception(request)logging.info(ret)except ServerException, e:logging.error(e)except ClientException, e:logging.error(e)# common codes enddef add_tag(resource_id, resource_type, tag1, tag2):request = AddTagsRequest()request.set_ResourceId(resource_id)request.set_ResourceType(resource_type)request.set_Tag1Key(tag1.get('key'))request.set_Tag1Value(tag1.get('value'))request.set_Tag2Key(tag2.get('key'))request.set_Tag2Value(tag2.get('value'))_get_response(request)if __name__ == '__main__':add_tag('i-xxxxx', 'instance', {'key':'env', 'value':'test'}, {'key':'depart', 'value':'dep1'})

以上示例可以给instance(实例)i-xxxxx添加两个标签,两个标签分别为 env:test 和 depart:dep1 。如果添加Tag时value填写错误,可以改正value之后再调用一次AddTags来“覆盖”一次同key的标签。

查询标签页面操作

查询标签,可以根据资源查询资源上的标签,也可以不填写资源,查询用户名下所有标签。下面是查询一个资源下标签的代码示例

from aliyunsdkecs.request.v20140526.DescribeTagsRequest import DescribeTagsRequestdef describe_tag(resource_id, resource_type):request = DescribeTagsRequest()request.set_ResourceId(resource_id)request.set_ResourceType(resource_type)_get_response(request)if __name__ == '__main__':describe_tag('i-xxxxx', 'instance')

删除标签页面操作

删除标签,删除指定资源的标签,本接口现在必须指定资源,可以不指定Tag value,表示删除所有Tag key为某个值的资源上的标签。

from aliyunsdkecs.request.v20140526.RemoveTagsRequest import RemoveTagsRequestdef remove_tag(resource_id, resource_type, tag):request = RemoveTagsRequest()request.set_ResourceId(resource_id)request.set_ResourceType(resource_type)request.set_Tag1Key(tag.get('key'))request.set_Tag1Value(tag.get('value'))_get_response(request)if __name__ == '__main__':remove_tag('i-xxxx', 'instance', {'key':'env', 'value':'test'})

创建资源自带标签页面操作

上述的操作都是针对于已有资源的Tag添加,为了保证标签流程的闭环,在创建资源的时候也是支持标签添加的,在资源的创建接口都是支持直接带Tag的创建,例如创建实例接口:

from aliyunsdkecs.request.v20140526.RunInstancesRequest import RunInstancesRequestdef remove_tag(resource_id, resource_type, tag):request = RunInstancesRequest()...request.set_Tags({'Key':'env', 'Value':'test'})_get_response(request)

这样创建出来的实例将会天然带有env:test标签。

控制台操作

添加标签送我学习API

在控制台添加标签,可以直接在实例列表的”更多”选项中选择编辑标签,在弹出框中新建标签即可。

图片描述

图片描述

查询标签送我学习API

标签在实例列表中或者实例详情页中就可以看到。

删除标签送我学习API

与添加标签一样,删除标签也在编辑标签的弹出窗口中操作,选择已有的标签删除掉即可。

图片描述

创建资源自带标签送我学习API

现在的新版buy页面天然支持实例分组(Tag)功能,在新版buy页面需要先填写完前两步中的必填项。

图片描述

在第四步的分组配置中,可以添加此次创建资源的标签

图片描述

在最后确认订单阶段,可以确认标签的选择。

图片描述

基于Tag的权限控制

我们涉及到的权限控制都指的是在子账号情况下对子账号的访问进行控制,首先需要在RAM控制台创建子账号(用户),然后给子用户授予权限,这个子用户将只有操作、查询授权规则相关的权限。
对于标签权限,授权语法如下:

{"Version": "1","Statement": [{"Effect": "Allow","Action": "*","Resource": "*","Condition": {"StringEquals": {"ecs:tag/depart": "dep1"}}}]
}

授权了如上权限的子用户,就只能操作带有depart:dep1标签的资源,注意,在查询时,这个授权不能作为过滤条件,在这个子账号查询实例的时候,必须带有Tag.1.Key=depart Tag.1.Value=dep1的过滤条件才允许查询。

对于使用Tag授权的资源,对不同类型的API有不同的限制表现,具体的限制如下:

操作类接口

对于操作类接口(如StartInstance),是针对某一个资源的操作,子账号是否有权限完全依赖这个实例是否带有指定的标签。
如果实例上带有授权语句中所有规定的标签,则允许子账号操作。

查询类接口

对于查询类操作,由于所有的鉴权行为都是前置行为(即判断结果只区分是否通过,而不会判断一个集合中有哪些通过),所以不会对结果集合进行“有权限过滤”。使用了标签鉴权的子账号,必须在查询中带有指定有权限的标签进行查询,才能查到有权限的实例。

创建类接口

对于创建类接口,鉴权时会判断接口中使用的所有资源是不是有权限,同时,也会判断创建出来的资源是否有权限。因此,对于带有标签授权的子账号,创建实例的时候,创建调用也必须带有相关Tag,否则子用户没有权限创建。

原文链接
干货好文,请关注扫描以下二维码:

图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日本三大移动通信运营商已重启华为手机销售;高通与LG和解 签署新的5年期专利授权协议; Facebook加密货币Libra被审查...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

工作流实战_21_flowable 加签 任务向前加签 向后加签

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://www.bilibili.com/video/av78471660/ 用户名密码0000001test0000002test0000003test0000004test文章目录1. 场景分析2. 演示:3. 代码分享3.1. 加签的方法3.2. 审批环节处理1.…

视频直播常见问题与解决办法汇总【系列二—直播截图】

摘要: 使用场景 用户常需要对视频直播的内容进行分析。例如,需要对直播中的某一帧的内容作为封面图片或者对于直播内容进行鉴黄以查看内容合法性等需求。因此,视频直播提供了实时截图功能满足用户的截图需求。 截图功能介绍 截图功能配置 配置…

hibernate 复合主键 根据主键删除_Python 之 MySql“未解之谜”11--主键 id 那些事

主键 id 用自增和 uuid 有什么区别?● uuid 有 16 个字节,比 int(4 byte)和 bigint(8 byte)占用更多存储空间有大量数据的时候 uuid 主键不会像自增主键那样越界,如果使用自增 id,字段类型一般选择 bigint● 如果 InnoDB 表的数据…

上万条数据撕开微博热搜的真相!

戳蓝字“CSDN云计算”关注我们哦!作者 | 徐麟,某互联网公司数据分析狮来源 | 数据森麟(id:shujusenlin)吃瓜前言关于新浪微博,向来都是各路吃瓜群众聚集之地,大家在微博中可以尽情吃瓜&#xff…

机器学习与Scikit Learn学习库

摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn。在我科研的时候,机器学习(ML)是计算机科学领域中最先吸引我的一门学科。虽然这…

工作流实战_19_flowable 任务委派

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://www.bilibili.com/video/av78294766/ 用户名密码0000001test0000002test0000003test0000004test文章目录场景分析1. 演示2. 代码分享3. 委派的执行处理场景分析 解释:委派 A…

【视频点播最佳实践】使用OSS SDK上传视频到点播

摘要: 场景 点播上传SDK缺乏需要的语言版本(如C/C、Go等)或相应的功能(如网络流上传、追加上传),可以直接使用OSS的SDK进行上传。 准备工作 确认已开通点播服务并完成了相关配置。确认已准备了阿里云账号AK…

Aruba 推出Instant On 为中小型企业提供安全、高速的无线连接

戳蓝字“CSDN云计算”关注我们哦!让你过几天没有Wi-Fi的生活,是一种什么样的感受?在现代人的生活里,离不开Wi-Fi已经成为日常,超市、酒店、住宅、医院、高铁……你能想到的所有场景几乎都已经部署了Wi-Fi。从个人角度来…

NSURLProtocol 拦截 NSURLSession 请求时body丢失问题解决方案探讨

摘要: “IP直连方案”主要在于解决DNS污染、省去DNS解析时间,通常情况下我们可以在项目中使用 NSURLProtocol 拦截 NSURLSession 请求,下面将支持 Post 请求中面临的一个挑战,以及应对策略介绍一下。 “IP直连方案”主要在于解决D…

工作流实战_18_flowable 流程任务的转办

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://www.bilibili.com/video/av78184848/ 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示2. 代码分享1. 演示 2. 代码分享 public ReturnVo<String> turnTa…

深入解读:获Forrester大数据能力高评价的阿里云DataWorks思路与能力

摘要&#xff1a; Forrester发布了Now Tech: Cloud Data Warehouse Q1 2018报告&#xff0c;报告对云化数据仓库&#xff08;Cloud Data Warehouse, CDW&#xff09;的主要功能、区域表现、细分市场和典型客户等进行了全面评估。 1.前言 本文基于Now Tech: Cloud Data Warehous…

用C语言倒置字符串

要逆置这个字符串&#xff0c;有很多种方法&#xff0c;在此说一次比较巧妙的方法 首先&#xff0c;逆置这个字符串&#xff0c;可以考虑单独的把每个单词都逆序一下&#xff0c;在对整个字符串进行逆序 考虑本题中的I like beijing. 首先对I、like、beijing. 中的每个单词逆序…

java中怎么把生成文件到项目根目录_[SpringBoot2.X] 02- 项目结构介绍

POM文件继承Spring Boot 的父级依赖&#xff0c;只有继承它项目才是 Spring Boot 项目。 spring-boot-starter-parent 是一个特殊的 starter&#xff0c;它用来提供相关的 Maven 默认依赖。使用它之后&#xff0c;常用的包依赖可以省去 version 标签。也就是继承的是springboot…

大咖云集、精彩议题、独家内容,2019 AI ProCon震撼来袭!(日程出炉)

2019年9月5-7日&#xff0c;面向AI技术人的年度盛会—— 2019 AI开发者大会 AI ProCon&#xff0c;火热来袭&#xff01; 继2018 年由CSDN成功举办AI 开发者大会一年之后&#xff0c;全球AI市场正发生着巨大的变化。顶尖科技企业和创新力量不断地进行着技术的更迭和应用的推进。…

机器学习的未来——深度特征融合

摘要&#xff1a; 深度特征融合是一项能够克服机器学习不足&#xff0c;为机器学习打开通往未来大门的新技术。新技术要不要了解一下&#xff1f;即使是最敏锐的技术布道师也无法预测大数据对数字革命的影响。因为他们最初的关注点都聚焦在了扩大基础设施以构建现有服务上。在提…

原码,反码,补码的关系和大小端字节序存储的关系

在看如下代码之前&#xff0c;要知道原码&#xff0c;反码&#xff0c;补码之间的关系 首先要知道第一位是符号位&#xff0c;0代表是正数&#xff0c;1代码是负数 正数的原码&#xff0c;反码&#xff0c;补码相同 负数的反码是符号位不变&#xff0c;其他位按位取反 负数的补…

与机器学习算法有关的数据结构

摘要&#xff1a; 在机器学习中需要运用到许多数据结构&#xff0c;掌握它们是非常重要的。希望本文能有所帮助拥有机器学习技能是不够的。你还需要良好的数据结构的工作知识。学习更多&#xff0c;并解决一些问题。因此&#xff0c;你已经决定不再使用固定的算法并开始编写自己…

resnet结构_经典卷积网络(二)-ResNet

一、ResNet&#xff08;总结自csdn文章&#xff09;随着网络的加深&#xff0c;出现了训练集准确率下降的现象&#xff0c;确定这不是由于Overfit过拟合造成的。作者针对这个问题提出了一种全新的网络&#xff0c;叫深度残差网络&#xff0c;它允许网络尽可能的加深&#xff0c…

物联网避坑 3 大指南!

戳蓝字“CSDN云计算”关注我们哦&#xff01;整理 | 胡巍巍参考 | 中信出版社《物联网时代》如果你正是物联网从业者&#xff0c;你如何避免自己的投入&#xff0c;不会成为一种痛苦的学习经历&#xff0c;相反成为一个令人瞩目的成功故事呢&#xff1f;最好的方式之一&#xf…