接下來,我們開始以實操的方式體驗下Blueprint,Blueprint的一大特點就是使用 Azure 藍圖,藍圖定義(應該部署的對象)和藍圖配置設定(已部署的對象)之間的關系仍然存在 。 此連接配接支援改進部署的跟蹤和稽核。 Azure 藍圖也能一次性更新由同一藍圖管理的多個訂閱。
也就是說使用Blueprint進行部署之後,blueprint的定義和已部署的資源仍然是存在關聯的,如果修改了blueprint的定義,那麼部署的資源也會産生相應的變化,這次的部落格内容也是用來展現這一點的,在部署之前,首先來看下blueprint對權限的要求
作為使用者來說,如果想操作blueprint,需要具有以下權限才可以
要建立藍圖,帳戶需要以下權限:
Microsoft.Blueprint/blueprints/write - 建立藍圖定義
Microsoft.Blueprint/blueprints/artifacts/write - 在藍圖定義上建立項目
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已經出來了