ARM Template 結合key vault存儲機密信息 (一)

前兩篇講到了terraform,做爲跨平臺的IAC工具絕對是沒話說的,很很是好用,今天再講回Azure原生的ARM Template,ARM Template好處就是做爲微軟的親兒子,兼容性啥的絕對沒話說,可是JSON對於非開發者來講實在用着彆扭,繁瑣的{}[]這些能搞懵很多人。二者之間各有優劣,用哪一種方式都不奇怪,因此今天也來談一談ARM Template裏的一些小技巧,首先來談下ARM Template和Key Valut的結合linux

在部署Azure資源時,常常會涉及到一些機密信息的問題,好比在建立VM時候要指定password或者key值,在建立數據庫的時候也要指定帳號密碼,若是做爲明文輸入的話確定是不行的,可是指定爲securestring又顯得比較麻煩,每次都要手動輸入,由於這東西不接受默認值,因此二者都不方便,比較理想的方式實際上是結合Azure Key Vault來作
數據庫

Key Vault是Azure中專門用來管理一些機密信息的服務,像一些加密的字符串,證書之類的均可以用key vault來管理,至關於就是個保險櫃同樣,能夠把敏感的東西鎖在裏邊,須要的時候再取出來,詳細的介紹能夠參考官方的文檔json

https://docs.microsoft.com/zh-cn/azure/key-vault/general/overview?WT.mc_id=AZ-MVP-5001235 安全

下邊來演示下具體怎麼來用,以一個例子爲背景
ide

咱們在建立Windows VM的時候須要指定password,而這個password就能夠首先先存儲在key vault中,而後在ARM Template裏引用這個值,這樣既保護了密碼的安全,又不須要手動指定
工具

下邊看下具體怎麼實現,首先從建立key vault開始,這一步沒啥特殊的,指定好key vault的名稱和位置便可加密

圖片1.png

下一步必定要注意,這裏必須勾選用於模板部署的Azure資源管理器
圖片3.pngrest


接下來建立一個secret做爲密碼orm

圖片4.png


輸入這個secret的名稱以及對應的值blog

圖片5.png


這樣,這個password就在key vault裏存在了,接下來就能夠在ARM Template裏引用了

首先咱們能夠把password定義成一個parameter,這樣這個值就是一個可變得值了,若是須要不一樣的password的話,也能夠在部署的時候從新進行賦值

adminPasswordOrKey": {
      "type": "securestring",
      "metadata": {
        "description": "SSH Key or password for the Virtual Machine. SSH key is recommended."
      }
    }


接下來能夠編輯parameter file,在這裏設置一個default值來引用剛纔建立的secret

parameters": {
    "adminPasswordOrKey": {
      "reference": {
        "keyVault": {
        "id": "/subscriptions/<SubscriptionID>/resourceGroups/mykeyvaultdeploymentrg/providers/Microsoft.KeyVault/vaults/<KeyVaultName>"
        },
        "secretName": "password"
    }


其餘ARM Template裏的內容和正常部署VM都是同樣的,部署時指定parameterfile和templatefile便可

New-AzResourceGroupDeployment -ResourceGroupName 'garrickmeng' -TemplateFile "D:\Tech\Cloud\Azure\ARM Template\VM\101-vm-simple-linux - key valut integration\azuredeploy.json" -TemplateParameterFile "D:\Tech\Cloud\Azure\ARM Template\VM\101-vm-simple-linux - key valut integration\azuredeploy.parameters.json"

圖片6.png


使用paasword也能夠正常進行SSH鏈接

圖片7.png

相關文章
相關標籤/搜索