Azure自定义角色实现RBAC
简要说明:
当前Azure Portal上只能针对订阅或具体某一资源,实现访问控制,也就是对某一具体资源实现访问/使用/删除,但无法实现创建。例如:当前的需求为,新添加用户只具有对CDN服务的管理使用(包括创建/访问/使用/删除),无法对除CDN外的资源进行管理使用。使用当前Portal的设置,已经无法实现该需求,需要使用自定义角色实现该需求,详细操作过程见下
准备条件:
AzureSubscriptionID:1ce573c5-2d64-493b-87cc-******
已创建的一个资源组:hlmltsrgn1
在AAD下新添加一个用户:hlmlts@******.onmschina.cn
详情操作:
1.在AAD下新建一个用户,hlmlts@******.onmschina.cn


2.新建一个资源组,hlmltsrgn1

3.获取已有角色,发现没有CDN管理相关的角色



4.使用Azure Powershell,登陆ARM模式,命令:Add-AzureRmAccount -EnvironmentName AzureChinaCloud,设置指定的订阅为即将操作的订阅,命令:Select-AzureRmSubscription -SubscriptionId "******"
5.使用如下Azure Powershell命令创建"CDN Contributor","$subscriptionid"及"$resourceGroupsName"参数需要根据自己的环境进行替换
$subscriptionid = "1ce573c5-2d64-493b-87cc-******"
$resourceGroupsName = "hlmltsrgn1"
$role = Get-AzureRmRoleDefinition -Name "Contributor"
$role.Id = $null
$role.Name = "CDN Contributor"
$role.Description = "Let you view and configure CDN resources only"
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/"+$subscriptionid+"/resourceGroups/"+$resourceGroupsName)
$role.NotActions.Clear()
$role.NotActions.Add("Microsoft.ApiManagement/*")
$role.NotActions.Add("Microsoft.AnalysisServices/*")
$role.NotActions.Add("Microsoft.Authorization/*/Delete")
$role.NotActions.Add("Microsoft.Authorization/*/Write")
$role.NotActions.Add("Microsoft.Authorization/elevateAccess/Action")
$role.NotActions.Add("Microsoft.Automation/*")
$role.NotActions.Add("Microsoft.AzureStack/*")
$role.NotActions.Add("Microsoft.Batch/*")
$role.NotActions.Add("Microsoft.Cache/*")
$role.NotActions.Add("Microsoft.ClassicInfrastructureMigrate/*")
$role.NotActions.Add("Microsoft.ClassicNetwork/*")
$role.NotActions.Add("Microsoft.ClassicCompute/*")
$role.NotActions.Add("Microsoft.ClassicStorage/*")
$role.NotActions.Add("Microsoft.ClassicSubscription/*")
$role.NotActions.Add("Microsoft.CognitiveServices/*")
$role.NotActions.Add("Microsoft.Compute/*")
$role.NotActions.Add("Microsoft.Devices/*")
$role.NotActions.Add("Microsoft.DocumentDB/*")
$role.NotActions.Add("Microsoft.EventHub/*")
$role.NotActions.Add("Microsoft.Features/*")
$role.NotActions.Add("Microsoft.HDInsight/*")
$role.NotActions.Add("Microsoft.ImportExport/*")
$role.NotActions.Add("Microsoft.Insights/*")
$role.NotActions.Add("Microsoft.KeyVault/*")
$role.NotActions.Add("Microsoft.Media/*")
$role.NotActions.Add("Microsoft.Network/*")
$role.NotActions.Add("Microsoft.NotificationHubs/*")
$role.NotActions.Add("Microsoft.PowerBI/*")
$role.NotActions.Add("Microsoft.RecoveryServices/*")
$role.NotActions.Add("Microsoft.Relay/*")
$role.NotActions.Add("Microsoft.Resources/subscriptions/resourceGroups/delete")
$role.NotActions.Add("Microsoft.Scheduler/*")
$role.NotActions.Add("Microsoft.ServiceBus/*")
$role.NotActions.Add("Microsoft.ServiceFabric/*")
$role.NotActions.Add("Microsoft.Sql/*")
$role.NotActions.Add("Microsoft.Storage/*")
$role.NotActions.Add("Microsoft.StreamAnalytics/*")
$role.NotActions.Add("Microsoft.Web/*")
New-AzureRmRoleDefinition -Role $role

6.运行以上Azure Powershell命令后,角色下多出了"CDN Contributor"

7.针对已建资源组设置新添加用户为“CDN Contributor”角色


8.使用新用户登陆Portal,进行测试验证

a.只能看到之前指定的资源组“hlmltsrgn1”,尝试创建资源组,失败

b.尝试在已有资源组下创建虚拟机,失败

c.尝试在已有资源组下创建存储账号,失败

d.尝试在已有资源组下创建虚拟机网络,失败

e.尝试在已有资源组下创建CDN Profiles,成功


Azure自定义角色实现RBAC的更多相关文章
- 在微服务系统开发部署中使用Azure RBAC自定义角色
Azure的官方文档介绍了如何创建用于Azure基于角色的访问控制的自定义角色(RBAC Role). 我们也可以根据同样的原理把RBAC细粒度资源管理运用于微服务产品的开发部署中.(https:// ...
- Sitecore安全性第1部分:自定义角色和权限
安全性是任何Sitecore构建的重要组成部分.它可确保您的内容作者具有适当级别的访问权限,以管理他们拥有的内容,并授予他们访问不同Sitecore功能的权限. Sitecore附带了许多提供功能访问 ...
- Azure基于角色的用户接入控制(RBAC)
RBAC是Role Based Access Control是基于角色的接入控制的简称.在Azure推出ARM以后,对Azure各种资源的管理粒度已经非常细致,使得RBAC成为可能. 通过RBAC可以 ...
- Shiro 自定义角色 认证
转载,原博文的地址在:https://ailongni.iteye.com/blog/2086022 由于Shiro filterChainDefinitions中 roles默认是and,/** = ...
- Openshift 用户,角色和RBAC
OCP中的权限管理沿用的Kubernetes RBAC机制,授权模式主要取决于下面几个因数 Rules 针对主要对象的操作权限,比如建立Pod Sets of permitted verbs on a ...
- ASP.NET Core 使用 JWT 自定义角色/策略授权需要实现的接口
目录 ① 存储角色/用户所能访问的 API ② 实现 IAuthorizationRequirement 接口 ③ 实现 TokenValidationParameters ④ 生成 Token ⑤ ...
- 基于角色访问控制RBAC权限模型的动态资源访问权限管理实现
RBAC权限模型(Role-Based Access Control) 前面主要介绍了元数据管理和业务数据的处理,通常一个系统都会有多个用户,不同用户具有不同的权限,本文主要介绍基于RBAC动态权限管 ...
- Kubernetes角色访问控制RBAC和权限规则(Role+ClusterRole)
文章转载自:https://blog.csdn.net/BigData_Mining/article/details/88849696 基于角色的访问控制(Role-Based Access Cont ...
- 【Azure 环境】由为存储账号(Storage Account)拒绝分配权限而引出的Azure 蓝图(Blueprint)使用问题
问题描述 当打开Azure存储账号(Storage Account)门户页面时,从 "访问控制(标识和访问管理)" 页面中发现有"拒绝分配"的功能,所以就思考, ...
随机推荐
- Nginx源码完全注释(5)core/ngx_cpuinfo.c
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #include <ngx_config.h> #include ...
- 16进制颜色转普通RGB
做开发的会遇到很多时候UI给到的是16进制的颜色 然而很多时候我们需要把它转换成适合我们方法的RGB参数 当然通过网页转换也可以达到目的 但是我现在选择写一个分类来解决 一劳永逸~ 1.首先说下 ...
- zabbix自定义key监控nginx和fpm(网站并发数)
一. nginx编译参数 监控nginx,主要讲解监控并发数 --prefix=/usr/local/nginx --with-http_stub_status_module zabbix编译参数的查 ...
- javascript运算符优先级顺序
1 ()2 !.-(负号).++.-- 3 *./.%4 +.- 10-55 <.<=.<.>=6 ==.!=.===.!==.7 &&8 ||9 ?:10 = ...
- 解决table边框在打印中不显示的问题
先了解一下,table边框如何设置 一.只对表格table标签设置边框 只对table标签设置border(边框)样式,将让此表格最外层table一个边框,而表格内部不产生边框样式.CSS代码: .t ...
- Android代码速查,写给新手的朋友们[转]
原文地址:http://www.open-open.com/lib/view/open1397286499090.html 0 android 创建按钮 Button button = new But ...
- IntelliJ IDEA开发golang环境配置
IntelliJ IDEA开发golang环境配置 首先把GO安装好...(自行安装,附上一篇我之前写的MAC安装GO) 安装IntelliJ IDEA,下载地址: https://www.jetbr ...
- Spring.net 事件的注入
1.首先上客户端代码 static void Main(string[] args) { IApplicationContext ctx = ContextRegi ...
- easyui 获取当前页签选中的名称
parent.parent.$("#tabs").tabs('getSelected').panel('options').title == "收藏夹管理"
- jdk1.7 环境变量配置
Windows系统中设置环境变量如下图右击“我的电脑”,选择“属性”. 点击“高级”选项卡,选择“环境变量”. 在“系统环境变量”中设置上面提到的3个环境变量,如果变量已经存在就选择“编辑”,否则选 ...