一,引言
之前講解的ADF 集成Azure DevOps 實現CI/CD,在 Releases Pipeline 階段,我們是將兩個 Blob Storage 的鏈接字符串復制、粘貼到 ”Override template parameters“,這樣雖然說實現了對應的功能,但是也暴露出一定的問題,就是將 “UAT”,甚至 “Pro” 環境的鏈接字符串暴露出來了,這樣是很危險的。也是不允許的。
這個時候,有人就說了,可以使用共享訪問簽名,設定有效期等限制。
確實是可以的,但是今天我們使用另外一個方式-----使用 Key Vault 托管 Blob Storage 的密鑰信息。OK,開始今天的表演!!!!!
--------------------我是分割線--------------------
1,Azure Data Factory(一)入門簡介
2,Azure Data Factory(二)復制數據
3,Azure Data Factory(三)集成 Azure Devops 實現CI/CD
4,Azure Data Factory(四)集成 Logic App 的郵件通知提醒
5,Azure Data Factory(五)Blob Storage 密鑰管理問題
二,正文
關於密鑰創建配置等問題,我之前有介紹過-----Azure Kay Vault(一).NET Core Console App 獲取密鑰保管庫中的機密信息 大家可以進行參考,創建Azure Key Vault,並且將兩個 Blob Storage 的鏈接字符串配置到 Azure Key Vault 中
為Azure DevOps 關聯的 sp 配置訪問權限,點擊圖中圈中的 “+ Add Access Policy”
Configure from template(optional)選擇:“Secret Management”
Key permissions 選擇:“List,Get”
Select principal 選擇:Azure DevOps 管理的 sp
其他選擇默認,點擊 “Add” 添加操作
緊接着點擊 “Save” 進行保存操作
接着回到Azure DevOps 中,需要在 Releases Pipeline 配置添加 Key Vault 步驟。
修改當前步驟的相關參數
Display name:“Azure Key Vault: cnbateblog-keyvault-UAT”
Azure subscription:選擇當前 UAT 環境的 Key Vault 所在的訂閱
Key vault:“cnbateblog-keyvault-UAT”
Secrets filter(機密過濾器):“from-db1-uat,to-db2-uat”(兩個機密名稱用 “,"進行分割開)
以逗號分隔的機密名稱列表,或留下*從選定的密鑰庫下載所有機密
接下來修改 ARM 模板部署中的覆蓋參數,將原有的兩個 Blob 的連接字符串改為 key vault 的兩個機密 key 了
-factoryName "ADF-CnBateBlogWeb-UAT" -CnBateBlogFromBlobStorage_connectionString $(from-db1-uat) -CnBateBlobToBlobStorage_connectionString $(to-db2-uat)
修改完成后,點擊 ”Save“ 進行保存
最后,我們可以手動觸發 Releases Pipeline,測試以下結果
Success!!!!!
Bingo,今天的分享到此結束
三,結尾
今天的內容其實很簡單,就是將之前接觸的 Azure Key Vault 結合 Azure Devops 運用起來,這就是一個很好的例子,同時里面還牽扯到 sp 的內容,雖然說整個 sp 不是我們手動創建的,是Azure Devops 幫我們創建的,但是我們還是需要回顧一下,想想其中的原理。當然,還有很多不完善的地方以及需要持續演進優化的,但是它目前已經滿足了演示的需要。此外,本文所分享的內容也存在着很多我自己的一些理解,因為每個人的經歷和認知都不同吧。
最后,謝謝大家的閱讀!!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
作者:Allen
版權:轉載請在文章明顯位置注明作者及出處。如發現錯誤,歡迎批評指正。