上一篇文章介绍了Azure基于ARM的RBAC,给不同的用户分配不同的权限。

但目前在国内使用的大部分用户还是以ASM的资源为主。比如:VM、Storage、Network、WebAPP、SQL Azure等等。

如果客户希望对这些资源给不同用户授予不同的权限,基于ARM的RBAC是否可以实现呢?

基于ARM的RBAC是可以对ASM的资源进行授权管理的。

本文将以VM为例子,介绍如何针对ASM中的资源进行授权的配置和管理。

1 建ASM的虚拟机

通过老portal管理界面:http://manage.windowsazure.cn

创建两台虚拟机,如下图:

2 创建用户和Role

根据前一篇文章介绍的方法,新建一个vmops@xxxx.partner.onmschina.cn的账户,同时新建一个Virtual Machine Operator的Role。

具体方法请参考前面一篇文章:

http://www.cnblogs.com/hengwei/p/5874776.html

Virtual Machine Operator拥有的权限如下,查询命令采用的是Azure CLI:

azure role show "Virtual Machine Operator" --json
[
{
"Name": "Virtual Machine Operator",
"Actions": [
"Microsoft.Authorization/*/read",
"Microsoft.ClassicCompute/*/read",
"Microsoft.ClassicCompute/virtualMachines/attachDisk/action",
"Microsoft.ClassicCompute/virtualMachines/detachDisk/action",
"Microsoft.ClassicCompute/virtualMachines/downloadRemoteDesktopConnectionFile/action",
"Microsoft.ClassicCompute/virtualMachines/restart/action",
"Microsoft.ClassicCompute/virtualMachines/shutdown/action",
"Microsoft.ClassicCompute/virtualMachines/start/action",
"Microsoft.ClassicCompute/virtualMachines/stop/action",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/powerOff/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Insights/alertRules/*",
"Microsoft.Network/*/read",
"Microsoft.Network/*/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Storage/*/read",
"Microsoft.Storage/*/read"
],
"NotActions": [],
"Id": "xxxx",
"AssignableScopes": [
"/subscriptions/xxxx",
"/subscriptions/xxxx"
],
"Description": "Can monitor and start stop or restart virtual machines.",
"IsCustom": "true"
}
]

其中Microsoft.ClassicCompute指的就是基于ASM的VM资源。通过Powershell命令或CLI命令可以看到相关信息:

azure provider list

info: Executing command provider list
+ Getting ARM registered providers
data: Namespace Registered
data: -------------------------------------- -------------
data: Microsoft.ApiManagement Registered
data: Microsoft.Batch Registered
data: Microsoft.Cache Registered
data: Microsoft.ClassicCompute Registered
data: Microsoft.ClassicNetwork Registered
data: Microsoft.ClassicStorage Registered
data: Microsoft.Compute Registered
data: Microsoft.Devices Registered
data: Microsoft.DocumentDB Registered
data: Microsoft.EventHub Registered
data: Microsoft.HDInsight Registering
data: Microsoft.insights Registered
data: Microsoft.MySql Registered
data: Microsoft.Network Registering
data: Microsoft.SiteRecovery Registered
data: Microsoft.Sql Registered
data: Microsoft.Storage Registered
data: Microsoft.StreamAnalytics Registered
data: Microsoft.Web Registered
data: Microsoft.Authorization Registered
data: Microsoft.ClassicInfrastructureMigrate NotRegistered
data: Microsoft.CognitiveServices NotRegistered
data: Microsoft.Features Registered
data: Microsoft.KeyVault NotRegistered
data: Microsoft.Media NotRegistered
data: Microsoft.Portal NotRegistered
data: Microsoft.Resources Registered
data: Microsoft.Scheduler Registered
data: Microsoft.ServiceBus NotRegistered
data: Microsoft.ServiceFabric NotRegistered
info: provider list command OK

或:

Get-AzureRmResourceProvider | ft ProviderNamespace

ProviderNamespace
-----------------
Microsoft.ApiManagement
Microsoft.Batch
Microsoft.Cache
Microsoft.ClassicCompute
Microsoft.ClassicNetwork
Microsoft.ClassicStorage
Microsoft.Compute
Microsoft.Devices
Microsoft.DocumentDB
Microsoft.EventHub
microsoft.insights
Microsoft.MySql
Microsoft.SiteRecovery
Microsoft.Sql
Microsoft.Storage
Microsoft.StreamAnalytics
Microsoft.Web
Microsoft.Authorization
Microsoft.Features
Microsoft.Resources
Microsoft.Scheduler

3 把用户和Role关联

在新Portal上:http://portal.azure.cn

使用Admin登陆后,对两台虚拟机进行权限分配:

将vmops用户对这台虚拟机的管理角色分配为Virtual Machine Operator。

4 测试

使用vmops登陆后,对这两台虚拟机进行操作:

发现只有前面对ClassComputer拥有的Start、Stop、restart、connect权限。

而admin拥有的权限有:Start、Stop、restart、connect、Caputre、Reset Remote Access、Delete。如下图:

总结:

通过对ClassComputer的资源进行操作的授权,可以控制用户对ASM VM的操作权限。

Azure RBAC管理ASM资源的更多相关文章

  1. Azure Powershell对ASM资源的基本操作

    本文主要介绍Windows Azure Powershell对ASM资源的基本操作 1.登陆ASM模式,命令:Add-AzureAccount -Environment AzureChinaCloud ...

  2. Azure CLI对ASM,ARM资源的基本操作

    本文主要介绍Windows Azure CLI对ASM及ARM资源的基本操作 1.在windows的CMD或Powershell环境下,输入命令:azure,可以查看到当前操作的模式为ASM还是ARM ...

  3. 新版Windows Azure CDN管理门户正式上线

    经过产品团队的不懈努力,新版Windows Azure CDN管理门户在经过了有限开放预览之后,已经正式上线并开放给所有用户. 新版Windows Azure CDN管理门户经过全新的设计,除了在使用 ...

  4. 细化Azure RBAC权限

    Azure RBAC权限的细化一直是比较繁琐的事情,以下示例抛砖引玉,供大家参考 客户需求: 新用户在指定资源组下权限需求如下: 一.禁止以下权限 1. 调整虚拟机大小配置 2. 删除&停止虚 ...

  5. 使用 Azure CLI 将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager 部署模型

    以下步骤演示如何使用 Azure 命令行接口 (CLI) 命令将基础结构即服务 (IaaS) 资源从经典部署模型迁移到 Azure Resource Manager 部署模型. 本文中的操作需要 Az ...

  6. “朕赐给你,才是你的;朕不给,你不能抢”--custome role在Azure权限管理中的简单实践

    在开始详细讨论技术问题之前,有一些个人观点想发表一下: ---作为一个甲方云平台的掌控着,如果任何事情你都是让partner全部帮你搞定,自己既不审核也不研究,那无论是对于公司还是个人发展来说都是没任 ...

  7. k8s管理存储资源

    1. Kubernetes 如何管理存储资源 理解volume 首先我们学习 Volume,以及 Kubernetes 如何通过 Volume 为集群中的容器提供存储:然后我们会实践几种常用的 Vol ...

  8. k8s 管理存储资源(10)

    一.Kubernetes 如何管理存储资源 理解Volume 我们经常会说:容器和 Pod 是短暂的. 其含义是它们的生命周期可能很短,会被频繁地销毁和创建.容器销毁时,保存在容器内部文件系统中的数据 ...

  9. 【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题

    问题描述 使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的.在虚拟网络中,启用网络安全组(NSG:Networ ...

随机推荐

  1. verilog FAQ(zz)

    1. What is the race condition in verilog? Ans :The situation when two expressions are allowed to exe ...

  2. JVM内存的堆、栈和方法区

    JVM的内存分为堆.栈.方法区和程序计数器4个区域 存储内容:基本类型,对象引用,对象本身,class,常量,static变量 堆: 拥有者:所有线程 内容:对象本身,不存放基本类型和对象引用 垃圾回 ...

  3. Linux下Python科学计算包numpy和SciPy的安装

      系统环境: OS:RedHat5 Python版本:Python2.7.3 gcc版本:4.1.2 各个安装包版本: scipy-0.11.0 numpy-1.6.2 nose-1.2.1 lap ...

  4. EntityFramework 学习 一 Validate Entity

    可以为实体实现自定义验证,重写DBContext中的个ValidateEntity方法 protected override System.Data.Entity.Validation.DbEntit ...

  5. Phoenix性能优化

    目录: 1.建表优化 2.二级索引 3.并行处理 1.建表优化 Salting 翻译成中文是加盐的意思,本质是在hbase的rowkey的byte数组的第一个字节位置设定一个系统生成的byte值, 这 ...

  6. Kafka详解六:Kafka如何通过源码实现监控

    问题导读: 1.kafka的消费者组的消费偏移存储,kafka支持两个版本?        2.ConsumerOffsetChecker类的作用是什么?        3.Kafka如何通过源码实现 ...

  7. review19

    StringBuffer类 String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改.删除或替换字符串中的饿某个字符,即String对象一旦创建,那么实体是不可以再发生变化的. ...

  8. mogon操作数据库

    返回的本来就是promise redis是内存数据库,更适合放session等一些东西.而mongo不是.

  9. 计时器(C#)

    很多项目要用到计时器,我就自己包装了一个,倒计时还没加,有时间再加上吧.持续更新 using UnityEngine; using UnityEngine.UI; /// <summary> ...

  10. WPF中的事件及冒泡事件和隧道事件(预览事件)的区别

    WPF快速指导10:WPF中的事件及冒泡事件和隧道事件(预览事件)的区别   WPF快速指导10:WPF中的事件及冒泡事件和隧道事件(预览事件)的区别 本文摘要: 1:什么是路由事件: 2:中断事件路 ...