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://blogs.technet.microsoft.com/bulentozkir/2016/09/09/azure-resource-manager-rbac-management-practical-tips/

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权限的更多相关文章

  1. phpcms中的RBAC权限系统

    PHPCMS中的RBAC权限系统主要用到了4张数据表:管理员表,角色表,菜单表,菜单权限表.先来看看数据库的数据表结构: admin 管理员表 ID 字段 类型 Null 默认 索引 额外 注释 1 ...

  2. Azure RBAC(Roles Based Access Control)正式上线了

    期盼已久的Azure RBAC(Roles Based Access Control)正式上线了. 在非常多情况下.客户须要对各种类型的用户加以区分,以便做出适当的授权决定.基于角色的訪问控制 (RB ...

  3. 详解Azure的权限控制

    注意:本文档仅限于Azure国际版,国内版略有不同   Azure中的角色分配相对来说是比较复杂的的,对于任何云组织来说,云的资源访问管理权限都是一项非常重要的功能,azure中的授权系统叫做基于角色 ...

  4. RBAC权限管理

    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联. 简单地说,一个用户拥有若干角色,每一个角色拥有若干权限. 这样,就构造成“用户-角 ...

  5. yii2 rbac权限控制详细操作步骤

    作者:白狼 出处:http://www.manks.top/article/yii2_rbac_description本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 ...

  6. yii2 rbac权限控制之菜单menu详细教程

    作者:白狼 出处:http://www.manks.top/article/yii2_rbac_menu本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...

  7. yii2搭建完美后台并实现rbac权限控制实例教程

    1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 或者参考yii2实战教程之详细安装步骤 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/con ...

  8. Yii2-admin RBAC权限管理的实现

    原文地址:http://www.open-open.com/lib/view/open1434638805348.html   http://wlzyan.blog.163.com/blog/stat ...

  9. 【转】RBAC权限管理

    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...

随机推荐

  1. rabbitmq的简单介绍一

    该博客的主要讲解了以下几种rabbitmq的用法1.实现简单的生产者发送消息给消费者2.实现序列持久化3.实现消息持久化4.实现消息公平分发5.实现广播6.实现组播7.实现细分组播 先来看下rabbi ...

  2. Python爬虫进阶三之Scrapy框架安装配置

    初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 ...

  3. jquery.cookie 介绍 和 用法

    1.依赖jQuery库 2.浏览器兼容性情况 3.下载 官方github:https://github.com/carhartl/jquery-cookie 4.使用 创建一个整站cookie $.c ...

  4. Please do not register multiple Pages in undefined.js 小程序报错的几种解决方案

    Wed Jun 27 2018 09:25:43 GMT+0800 (中国标准时间) Page 注册错误,Please do not register multiple Pages in undefi ...

  5. sublime填坑之旅: 格式代码, 缩进缩进

    前言:sublime是一款编程神器,轻巧又强大,适用于各种语言.这里介绍下如何快速缩进混乱代码,方便代码阅读. 原料:sublime text 3 1 混乱代码如下: 2  格式菜单选择: 英文: 菜 ...

  6. Linux的磁盘分区(一)

    磁道:track 扇区:sector 磁头:head 柱面:cylinder 每个扇区,512字节 每个磁道划分为63个扇区 逻辑磁头(盘面)数设为255 一个柱面的大小 =255 * 63 * 51 ...

  7. Word直接发布新浪博客(以Word 2010为例)

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  8. html 中的<script>标签

    https://www.w3.org/TR/html51/semantics-scripting.html#the-script-element 一. <script type='text/ja ...

  9. Alpha冲刺 - (6/10)

    Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1(组长)柯奇豪 过去两天完成了哪些任务 基于ssm框架的前后端交互测试,结合 ...

  10. Centos 7 搭建wordpress

    1.安装mysql 详情见:http://www.cnblogs.com/jw35/p/6044170.html 2.关闭firewalld与selinux systemctl stop firewa ...