细化Azure RBAC权限
Azure RBAC权限的细化一直是比较繁琐的事情,以下示例抛砖引玉,供大家参考
客户需求:
新用户在指定资源组下权限需求如下:
一、禁止以下权限
1、 调整虚拟机大小配置
2、 删除&停止虚拟机
3、 扩容磁盘&添加磁盘
4、 重置密码
二、容许以下权限
1、 对应资源组下所有查看类权限
2、 启动诊断权限(查看屏幕快照)
3、 监视类权限
4、 特殊权限:重启虚拟机&标记权限&提交工单权限
解决方法:
您可以参考如下操作说明,以实现新用户对指定资源组所具有的特定权限
1.AAD下创建新用户
2.在装有Azure Powershell的客户端执行如下操作
#登陆Azure账号
Add-AzureRmAccount -EnvironmentName AzureChinaCloud
#选择指定的订阅
Select-AzureRmSubscription -Subscription ***
#获取已有角色“虚拟机参与者”
$role = Get-AzureRmRoleDefinition -Name 'Virtual Machine Contributor'
#清空角色Id
$role.Id = $null
#给自定义角色命名及添加角色描述
$role.Name = 'Special Permission'
$role.Description = '***'
#清空“虚拟机参与者”的已有actions及notactions权限
$role.Actions.Clear()
$role.NotActions.Clear()
#赋予自定义角色所有资源的只读权限
$role.Actions.Add("*/read")
#赋予自定义角色重启虚拟机的权限
$role.Actions.Add("Microsoft.Compute/virtualMachines/restart/action")
#赋予自定义角色list存储账号key的权限,以实现查看诊断屏幕快照
$role.Actions.Add("Microsoft.Storage/storageAccounts/listKeys/action")
#赋予自定义角色添加诊断规则的权限,以实现监视类功能
$role.Actions.Add("Microsoft.Insights/AlertRules/*")
#赋予自定义角色更新虚拟机的权限,以实现标记功能
$role.Actions.Add("Microsoft.Compute/virtualMachines/write")
#阻止自定义角色查看虚拟机大小的功能
$role.NotActions.Add("Microsoft.Compute/virtualMachines/vmSizes/read")
#清空自定义角色的作用域,并授权指定订阅
$role.AssignableScopes.Clear()
$subscriptionid = "***"
$role.AssignableScopes.Add("/subscriptions/"+$subscriptionid)
#新建自定义角色
New-AzureRmRoleDefinition -Role $role
3.给指定资源组添加基于新用户的自定义角色权限
4.使用新用户登录Azure Portal测试验证
尝试关闭虚拟机报错
尝试删除虚拟机报错
不可以显示虚拟机大小,以阻止客户调整虚拟机大小
尝试附加数据磁盘报错
尝试重置密码报错
尝试创建虚拟机报错
可以成功查看虚拟机信息
可以成功标记虚拟机
更多有关RBAC的说明,请参考
https://docs.azure.cn/zh-cn/role-based-access-control/resource-provider-operations#microsoftcompute
https://docs.azure.cn/zh-cn/role-based-access-control/built-in-roles#virtual-machine-contributor
细化Azure RBAC权限的更多相关文章
- phpcms中的RBAC权限系统
PHPCMS中的RBAC权限系统主要用到了4张数据表:管理员表,角色表,菜单表,菜单权限表.先来看看数据库的数据表结构: admin 管理员表 ID 字段 类型 Null 默认 索引 额外 注释 1 ...
- Azure RBAC(Roles Based Access Control)正式上线了
期盼已久的Azure RBAC(Roles Based Access Control)正式上线了. 在非常多情况下.客户须要对各种类型的用户加以区分,以便做出适当的授权决定.基于角色的訪问控制 (RB ...
- 详解Azure的权限控制
注意:本文档仅限于Azure国际版,国内版略有不同 Azure中的角色分配相对来说是比较复杂的的,对于任何云组织来说,云的资源访问管理权限都是一项非常重要的功能,azure中的授权系统叫做基于角色 ...
- RBAC权限管理
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联. 简单地说,一个用户拥有若干角色,每一个角色拥有若干权限. 这样,就构造成“用户-角 ...
- yii2 rbac权限控制详细操作步骤
作者:白狼 出处:http://www.manks.top/article/yii2_rbac_description本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 ...
- yii2 rbac权限控制之菜单menu详细教程
作者:白狼 出处:http://www.manks.top/article/yii2_rbac_menu本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...
- yii2搭建完美后台并实现rbac权限控制实例教程
1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 或者参考yii2实战教程之详细安装步骤 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/con ...
- Yii2-admin RBAC权限管理的实现
原文地址:http://www.open-open.com/lib/view/open1434638805348.html http://wlzyan.blog.163.com/blog/stat ...
- 【转】RBAC权限管理
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...
随机推荐
- python在windows环境安装MySQLdb
一.环境 系统:win7,64位 python版本:2.7.15 pip版本:10.0.1 二.安装 1. 用pip安装 pip install MySQLdb 报错: Could not find ...
- mybatis逆向工程的注意事项:mapper文件内容不是覆盖而是追加
XXXMapper.xml文件已经存在时,如果进行重新生成则mapper.xml文件内容不被覆盖而是进行内容追加,结果导致mybatis解析失败. 解决方法:删除原来已经生成的mapper xml文件 ...
- nano编辑器
1.ctrl+O 2.回车 3.ctrl+exit
- Basic4android v3.50 发布
这次发布的主要是debug 的增强.说实话,在这一方面B4a 比delphi做的要好.希望delphi 在新的版本里面 能进一步加强. I'm happy to release Basic4andro ...
- SOA和微服务到底是什么关系?
SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上的区别,两者说到底都是对外提供接口的一种架构设计方式.我倒觉得微服务其实就是随着互联网的发展,复杂的平台.业务的出现, ...
- linux nkf 日文编码转换命令[转载]
对于日语的编码 windows : Shift-JIS Linux : 2.4内核使用EUC编码,2.6内核中使用UTF8编码 检查文件编码 nkf -g filename 通常处理字符编码都使用i ...
- <网络攻防实践> 课程总结20169216
课程总结20169216 每周作业链接汇总 第一周作业:Linux基础入门(1-5).基本概念及操作 第二周作业:linux基础入门(6-11).网络攻防技术概述网络攻防试验环境搭构.Kali教学视频 ...
- SDK管理利器——sdkman
SDK管理利器--sdkman 项目使用java的开发者一定会为新配环境变量而头大,sdkman很好的解决了系统sdk管理的痛点,仅需简单的几行命令就可以完成sdk的安装,更改默认版本.再也不用担心环 ...
- java并发编程实战:第三章----对象的共享
我们不仅仅希望防止某个线程使用某个状态时,另一个线程在修改它:我们还希望某个线程修改了某个状态后,其他线程能够看到状态的变化. 一.可见性 重排序:在没有同步的情况下,编译器.处理器可能对代码的执行顺 ...
- uva 10169 - Urn-ball Probabilities !(概率)
题目链接:uva 10169 - Urn-ball Probabilities ! 题目大意:在一个箱子中,原本有1个红球,然后任意取出(有放回)一个球,然后再往里放一个白球(每次取都要放进一个白球) ...