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)门户页面时,从 "访问控制(标识和访问管理)" 页面中发现有"拒绝分配"的功能,所以就思考, ...
随机推荐
- 微信OAuth2.0网页授权php示例
1.配置授权回调页面域名,如 www.aaa.com 2.模拟公众号的第三方网页,fn_system.php <?php if(empty($_SESSION['user'])){ header ...
- SQL 数据库 学习 004 预备知识
数据库 预备知识 我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Express 如果我们要学习这个数据库,我们需要学习什么知识. 预备 ...
- [Training Video - 7] [Database connection] Various databases which are supported, Drivers for database connection, SQL Groovy API
Various databases which are supported Drivers for database connection groovy.sql.Sql package SoapUI怎 ...
- RedisHelper in C#
自己写了一个RedisHelper,现贴出来,希望各位大神能够指正和优化. using System; using StackExchange.Redis; using System.Configur ...
- crontab定期执行shell脚本
[场景]: 需要定期运行Hadoop的MapReduce [解决办法]: 编写一个运行MapReduce的Shell脚本.然后使用crontab配置定时任务. [Shell脚本] #!/usr/bin ...
- Part3_lesson2---ARM指令分类学习
1.算术和逻辑指令 mov.mvn.cmp.tst.sub.add.and.bic 2.比较指令 cmp和tst 3.跳转指令 b和bl 4.移位指令 lsl和ror 5.程序状态字访问指令 msr与 ...
- 【Head First Java 读书笔记】(八)接口与抽象类
接口是什么?它是一种百分之百纯抽象的类. 什么是抽象类?即无法初始化的类. 例如,我们设计一个animal类,以此类为父类,分别设计了多种动物子类,例如Lion,Tiger,Cat,Wolf,Do ...
- SVN客户端--TortoiseSVN使用说明【转】
TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具.通过使用它,我们可以可视化的管理我们的版本库.不过由于它只是一个客户端,所以它不能对版本库进行权限管理. TortoiseS ...
- 洛谷P2147[SDOI2008]洞穴勘测(lct)
题目描述 辉辉热衷于洞穴勘测. 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假 ...
- 【Web学习笔记】浅析CGI概念及用法
1. CGI是什么 CGI是Common Gateway Interface的简写,它提供了一种标准方法使得位于WebServer后端的web应用可以根据client的请求动态生成网页 ...