Azure实践之Policy与Role assignment结合应用
admin
2023-04-08 08:42:52
0

今天再来与各位分享一篇关于Azure Policy的应用,Policy的作用之前已经有过一次介绍,没看过的朋友可以移步之前的博客

使用Azure Polcy强制禁止非托管磁盘VM

https://blog.51cto.com/mxyit/2347943

 

今天要分享的主题是如何用Policy限制Azure中的role assignment,可能很多人一提到Role Assignment,第一反应就会是RBAC。这其实很正常,因为Role assignment确实是属于RBAC的范畴,那么RBAC和Polcicy的区别到底是什么?主要有两点


  • RBAC 关注不同范围内的用户操作。 你可能会被添加到资源组的参与者角色,可对该资源组做出更改。

  • 策略关注部署期间的资源属性,以及现有资源。 Policy 控制属性,例如资源的类型或位置



很多人一提到要限制role assignment第一反应也是用RBAC来实现,但是其实,用Policy来实现这个需求有可能还会更简单

 

之前有客户提到过这样一种情况,企业中Azure环境权限分配很混乱,有权限的人私自为其他账号添加owner权限,这些人又私自为其他人添加owner权限,导致权限已经泛滥,客户花了很大的精力才把权限慢慢回收回来,同时为了便于管理,客户也希望能限制为用户添加owner权限,为此,其中一种解决办法就是可以通过Policy实现。Policy可以做到只允许用户assign特定的一些role,比如只可以分批contributor或者reader这种角色,owner这种角色不允许assign,这样可以从技术手段上杜绝权限泛滥的可能

 

下边来看下具体如何实现,Policy的核心实际上就是定义rules的JSON文件,

可以看到其实实现我们的需求并不复杂,下边的policy意思就是,如果Role ID不在roleDefinitionIds这个数组中,则拒绝添加,Role ID是什么概念呢?其实Azure中每个Role都是有一个独立的ID的,想要查询这个ID其实很简单,下边提供两种方法


1:通过PowerShell

Get-AzureRmRoleDefinition|ft name,id -AutoSize


Azure实践之Policy与Role assignment结合应用



2:直接在网页中查找

https://docs.microsoft.com/zh-cn/azure/role-based-access-control/built-in-roles#reader


{

 

         "if": {

 

                "allOf": [

 

                    {

 

                        "field": "type",

 

                        "equals": "Microsoft.Authorization/roleAssignments"

 

                    },

 

                    {

 

                        "not": {

 

                            "field": "Microsoft.Authorization/roleAssignments/roleDefinitionId",

 

                            "in": "[parameters('roleDefinitionIds')]"

 

                        }

 

                    }

 

                ]

 

            },

 

       "then": {

 

              "effect": "deny"

 

       }

 

}


有了Role ID之后来看一下,首先我们需要将允许添加的role id添加到数组中,比如如果只允许添加contributor和reader权限,则可以将这两个ID添加到一个数组

[string[]]$ids="acdd72a7-3385-48ef-bd42-f606fba81ae7"

$ids+="b24988ac-6180-42a0-ab88-20f7382dd24c"

Azure实践之Policy与Role assignment结合应用



之后开始定义Role definition,包含rules定义的JSON文件已经放在restrict-roleassignment-owner2这个文件中,另外因为role id是一个可变的参数,因此在parameter参数中需要定义好参数的类型等属性

Azure实践之Policy与Role assignment结合应用



可以看到这个parameter是一个array,也就是数组类型,也符合我们的需求

{

 

       "roleDefinitionIds": {

 

              "type": "array",

 

              "metadata": {

 

                     "description": "The list of role definition Ids",

 

                     "displayName": "Approved Role Definitions"

 

              }

 

       }

 

}


定义好之后可以开始分配这个policy了,在scope中可以灵活选择需要assign到哪个级别,可以选择订阅或者单独某个资源或者资源组都可以,这里直接选择将policy分配到订阅级别

Azure实践之Policy与Role assignment结合应用


定义好之后来做个最终的测试,策略已经生效了!在assign role的时候尝试assign owner,但是已经提示policy禁止这么做了

Azure实践之Policy与Role assignment结合应用


相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...