zoukankan      html  css  js  c++  java
  • 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,成功

     

  • 相关阅读:
    课堂作业04 2017.10.27
    课程作业 03 动手动脑 2017.10.20
    课程作业 03 2017.10.20
    HDU 3974 Assign the task
    POJ 2155 Matrix
    POJ 2481 Cows
    HDU 3038 How Many Answers Are Wrong
    CS Academy Array Removal
    POJ_1330 Nearest Common Ancestors LCA
    CF Round 427 D. Palindromic characteristics
  • 原文地址:https://www.cnblogs.com/stonehe/p/8581479.html
Copyright © 2011-2022 走看看