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)门户页面时,从 "访问控制(标识和访问管理)" 页面中发现有"拒绝分配"的功能,所以就思考, ...
随机推荐
- 104. Maximum Depth of Binary Tree (Tree; DFS)
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- jQuery autocomplete -默认
<!doctype html> <html> <head> <meta name="content-type" content=" ...
- svm原理及opencv
转自http://www.cnblogs.com/justany/archive/2012/11/23/2784125.html
- Spring在代码中获取bean的几种方式(转)
获取spring中bean的方式总结: 方法一:在初始化时保存ApplicationContext对象 ApplicationContext ac = new FileSystemXmlApplica ...
- easyui图标大全
.icon-blank{ background:url('icons/blank.gif') no-repeat; } .icon-add{ background:url('icons/edit_ad ...
- Linux比较操作符
http://blog.csdn.net/ithomer/article/details/6836382
- Short jhat tutorial: diagnosing OutOfMemoryError by example
转自: http://petermodzelewski.blogspot.com/2013/06/short-jhat-tutorial-diagnosing.html jhat这个工具经过使用, 发 ...
- sql语句有几种写法
sql语句有几种写法 1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要获取的数据条数: 2:SELECT *FROM `table` WHERE i ...
- .net 可选参数和命名参数
可选参数,可以为方法的参数设置默认值,在调用方法的时候,如果不传递参数,就是执行默认参数. class Program { , string s = "A", DateTime d ...
- SSL证书 .pem转.pfx
使用OpenSSL来进行转换 OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具.例如 http://slproweb.com/products/Win32OpenS ...