使用Azure Policy(策略)强制实现资源Tag的坑
Azure的Tag(标记)可以帮助运维人员对云资源分类从而方便地进行计费和资源管理。然而在具体实践中工程师部署云资源的时候常常会忘记给资源做标记打Tag。
针对这个问题,Azure的官方文档建议是可以使用自定义的策略要求所有资源都拥有针对特定标记以及特定的值.https://www.azure.cn/documentation/articles/resource-manager-policy/
在global azure里面甚至已经提供了内置的策略(buildin policy)来帮助管理员强制实现资源Tag。
我们以第一个内置策略为例研究一下如何在azure china也实现类似的功能。这个策略的json内容如下:
以此为模板,设计策略如下:资源组Meow内的资源都必须带有特定的标记“costcenter”,该costcenter的值必须是100.200.300。
如果这个标记不存在,资源将不能被创建
策略定义如下:
{
"if": {
"not": {
"field": "tags.costcenter",
"equals": "100.200.300“
}
},
"then": {
"effect": "deny"
}
}
接下来, 用powershell在订阅里实现这个策略
创建一个没有标记costcenter的存储账号测试一下,错误信息显示策略限制了存储帐号的创建
加上标记costcenter,随意给个标记值,再试一下,还是不能创建
好吧,老老实实按策略来,加上标记costcenter,标记值是100.200.300
这就是我们今天要讲的坑吗?当然不是!!!!!!!!!,重要的事情讲三遍
这个策略不能随便用
这个策略不能随便用
这个策略不能随便用
还记得怎么从portal创建一个存储账户吗?
看见没有,portal就没有给机会在创建的时候加入标记tag,实施了以上的策略的订阅和资源组事实上限制了任何用户从portal在该订阅资源组创建资源。任何从portal的创建都会得到以下错误信息
所以,除非云平台的IDAM安全策略本身禁止从portal创建资源的,
类似的策略不能随便用,哪怕是azure内置的。
类似的策略不能随便用,哪怕是azure内置的。
类似的策略不能随便用,哪怕是azure内置的。
不过呢,虽然这个策略不能用,事情还是一样要做。其实global azure的内置策略还给了另外一种思路
这个策略相对温和,资源在创建时候如果没有特定标记和特定值,该策略会用append方式自动加上标记和相应的值。
先把上面实施的策略删除,然后实施新策略
用powershell创建一个没有标记costcenter的存储账号,从命令输出可以看到标记costcenter和相应的值100.200.300被自动加在存储账号上
回到portal继续创建存储账号,创建成功,标记和值都被加上了
最后再讲一句,设想一下,在一个企业级的azure环境里或者在一个azure managed service provider的环境里,十几个甚至几十个项目同时在进行,每个项目使用不同的订阅或者不同的资源组,项目不同阶段的costcenter都是不同的,采用这个append策略的话,云管理员就忙着和各个项目沟通拿costcenter加策略改策略删策略没时间干其他活了啊。
理想的解决方案到底该是怎么样的呢?
使用Azure Policy(策略)强制实现资源Tag的坑的更多相关文章
- Azure ARM (22) Azure Policy入门
<Windows Azure Platform 系列文章目录> 我们知道,在Azure服务层级中,分为以下几个层次: 1.企业合同 2.订阅 3.资源组 4.资源 我们使用的Azure资源 ...
- Azure ARM (23) Azure Policy使用
<Windows Azure Platform 系列文章目录> 在之前的文档中,我们介绍了Azure Policy的使用场景. 本章我们介绍如何创建和使用Azure Policy. 模拟场 ...
- 平台支持的从经典部署模型到 Azure Resource Manager 的 IaaS 资源迁移
本文介绍如何才能将基础结构即服务 (IaaS) 资源从经典部署模型迁移到 Resource Manager 部署模型. 用户可以阅读有关 Azure Resource Manager 功能和优点的更多 ...
- Azure DevOps(二)利用Azure DevOps Pipeline 构建基础设施资源
一,引言 上一篇文章记录了利用 Azure DevOps 跨云进行构建 Docker images,并且将构建好的 Docker Images 推送到 AWS 的 ECR 中.今天我们继续讲解 Azu ...
- 浏览器中F5和CTRL F5的行为区别及如何强制更新资源
一.浏览器中F5和CTRL F5的行为区别 我们直接来看效果,下面是我打开qq网页,分别使用F5和CTRL F5,我们来看区别. F5: CTRL F5: 区别: 首先直观上的区别是CTRL F5明显 ...
- 在MaxCompute中配置Policy策略遇到结果不一致的问题
背景信息: 本文以如下场景为基准进行编写,如下: 用户通过DataWorks-简单模式使用MaxCompute: 用户具有DataWorks默认角色,如DataWorks开发者角色: 用户通过cons ...
- Flutter 发布APK时进行代码/资源混淆的坑
Flutter 发布APK时进行代码/资源混淆的坑 @author ixenos 1. 关键点 proguard是Java的代码混淆工具,但是当用第三方库的时候,必须要告诉proguard不要检查,因 ...
- MySQL-5.7密码策略及用户资源限制
1.密码策略 在mysql 5.6对密码的强度进行了加强,推出了validate_password 插件.支持密码的强度要求. (1)安装插件 [root@localhost ~]# ll /usr/ ...
- 网站搜索引擎优化SEO策略及相关工具资源
网站优化的十大奇招妙技 1. 选择有效的关键字: 关键字是描述你的产品及服务的词语,选择适当的关键字是建立一个高排名网站的第一步.选择关键字的一个重要的技巧是选取那些常为人们在搜索时所用到的关键字. ...
随机推荐
- css3实现checkbox变按钮
css3实现checkbox变按钮 .search_checkbox { margin: 0; padding: 0; margin-left: 15px; display: inline-block ...
- 天方夜谈·数据结构·List
在战场上杀不死的敌人,永远也别想打败他,他就像幽灵横亘在你失败的田地上. 大一下学期,接触到Java程序设计语言,时至今日,才越发觉得知识与技术的海洋是多么多么的浩瀚.......如果说编程语言的一个 ...
- bzoj4816 [Sdoi2017]数字表格
Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师 ...
- 内存管理之slab分配器
基本思想 与传统的内存管理模式相比, slab 缓存分配器提供了很多优点.首先,内核通常依赖于对小对象的分配,它们会在系统生命周期内进行无数次分配.slab 缓存分配器通过对类似大小的对象进行缓存而提 ...
- 【源码学习】之requirejs
对于现在的前端生态来说,requirejs是有点过时了,webpack帮我们包干了一切.但是对于学习源码这件事情来说,永远是不过时的! 最近稍微闲下来了一点,就着以前做过的项目,我也来看看requir ...
- jsp自定义函数库
步骤如下: 1.创建一个函数库类,里面的方法就是标签函数库要调用的方法(必须是静态方法) package com.mdd.tag; public class JiSuan { //两个数相 ...
- Ubuntu设置终端相对短路径
这个设置相对实际上是比较简单的.在自己的家目录打开.bashrc 找到PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$' 只需要将w修改为大写W保存, ...
- Hadoop中MapReduce作业流程图
MapReduce的流程分为11个步骤,4个实体 1.客户端:编写MapReduce的代码,配置作业,提交作业 2.JobTracker:初始化作业,分配作业,与TaskTracker通信,协调整个作 ...
- 响应式网站-全屏banner响应的2中方法 - 被吃掉的banner
通常来讲, 设计师们喜欢把banner设计成全屏(1920px或以上) 主题内容控制在一定的范围内一般在1200px左右 这样的设计即可以在宽屏上的表现很好.也能向下兼容一些小屏幕的设备: 如下图(所 ...
- 【图解HTTP】笔记摘要
第1章 了解Web及网络基础 根据Web浏览器(Web客户端)地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源(resource)等信息,从而显示出Web页面. CERN(欧洲核子研究组 ...