接下来,咱们开始以实操的方式体验下Blueprint,Blueprint的一大特色就是使用 Azure 蓝图,蓝图定义(应该部署的对象)和蓝图分配(已部署的对象)之间的关系仍然存在 。 此链接支持改进部署的跟踪和审核。 Azure 蓝图也能一次性升级由同一蓝图管理的多个订阅。微信
也就是说使用Blueprint进行部署以后,blueprint的定义和已部署的资源仍然是存在关联的,若是修改了blueprint的定义,那么部署的资源也会产生相应的变化,此次的博客内容也是用来体现这一点的,在部署以前,首先来看下blueprint对权限的要求app
做为用户来讲,若是想操做blueprint,须要具备如下权限才能够ide
要建立蓝图,账户须要如下权限:3d
Microsoft.Blueprint/blueprints/write - 建立蓝图定义对象
Microsoft.Blueprint/blueprints/artifacts/write - 在蓝图定义上建立项目blog
Microsoft.Blueprint/blueprints/versions/write - 发布蓝图图片
要删除蓝图,账户须要如下权限:资源
Microsoft.Blueprint/blueprints/delete部署
Microsoft.Blueprint/blueprints/artifacts/delete博客
Microsoft.Blueprint/blueprints/versions/delete
要分配或取消分配蓝图,账户须要如下权限:
Microsoft.Blueprint/blueprintAssignments/write - 分配蓝图
Microsoft.Blueprint/blueprintAssignments/delete - 取消分配蓝图
另一方面,在部署资源时,咱们实际上并非使用操做用户的权限来部署的,而是一个独立的AAD中的application
在Portal上进行Blueprint部署时,这个应用程序会被临时授予订阅的owner权限,部署完成后,权限会被回收
与蓝图相关的操做能够分为三类:
定义:定义蓝图的内容,包括RBAC,Policy,资源部署等
发布:定义完成后,蓝图自动进入草稿状态,只有发布以后蓝图才能够进行分配
分配:将蓝图定义应用在必定范围内,至关于实际部署资源
具体能够参考这个连接
https://docs.microsoft.com/zh-cn/azure/governance/blueprints/concepts/lifecycle?WT.mc_id=AZ-MVP-5001235
下边就来实际演示下:
Blueprint实际在Azure Global和中国区均可以使用,此次的演示环境用的是Global
首先建立一个Blueprint模板
能够看到,在Global有不少蓝图模板可供选择,选择security benchmark试试
定义好blueprint的名称
在artifacts这里能够看到security benchmark其实就是定义了一组Azure Policy
尝试添加一个artifact,首先建一个Resource Group
接下来建一个Role Assignment, assign一个contributor role
咱们简单定义这么一个blueprint就好,以后就能够发布了
选中Blueprint, 选择发布,输入对应的版本号和变动记录
以后进行蓝图的分配
选择好要分配的订阅
以前添加项目的时候,须要的参数都得写上
写好以后,直接assign便可,能够看到资源组已经建出来了
Blueprint和资源之间是有联系的,修改Blueprint,资源也会发生变化
尝试在原有Blueprint定义中,添加一个storage account的ARM Template
将这个新版本发布出去
选择update blueprint
选择1.2版本
填写storage相关内容
能够看到activity log
能够看到Storage已经出来了