java获取keyvault_ARM Template 结合key vault存储机密信息 (一)
前兩篇講到了terraform,作為跨平臺的IAC工具絕對是沒話說的,很非常好用,今天再講回Azure原生的ARM Template,ARM Template好處就是作為微軟的親兒子,兼容性啥的絕對沒話說,但是JSON對于非開發者來說實在用著別扭,繁瑣的{}[]這些能搞懵不少人。兩者之間各有優劣,用哪種方式都不奇怪,所以今天也來談一談ARM Template里的一些小技巧,首先來談下ARM Template和Key Valut的結合
在部署Azure資源時,經常會涉及到一些機密信息的問題,比如在創建VM時候要指定password或者key值,在創建數據庫的時候也要指定賬號密碼,如果作為明文輸入的話肯定是不行的,但是指定為securestring又顯得比較麻煩,每次都要手動輸入,因為這東西不接受默認值,所以兩者都不方便,比較理想的方式其實是結合Azure Key Vault來做
Key Vault是Azure中專門用來管理一些機密信息的服務,像一些加密的字符串,證書之類的都可以用key vault來管理,相當于就是個保險柜一樣,可以把敏感的東西鎖在里邊,需要的時候再取出來,詳細的介紹可以參考官方的文檔
下邊來演示下具體怎么來用,以一個例子為背景
我們在創建Windows VM的時候需要指定password,而這個password就可以首先先存儲在key vault中,然后在ARM Template里引用這個值,這樣既保護了密碼的安全,又不需要手動指定
下邊看下具體怎么實現,首先從創建key vault開始,這一步沒啥特殊的,指定好key vault的名稱和位置即可
下一步一定要注意,這里必須勾選用于模板部署的Azure資源管理器
接下來創建一個secret作為密碼
輸入這個secret的名稱以及對應的值
這樣,這個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//resourceGroups/mykeyvaultdeploymentrg/providers/Microsoft.KeyVault/vaults/"
},
"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"
使用paasword也可以正常進行SSH連接
總結
以上是生活随笔為你收集整理的java获取keyvault_ARM Template 结合key vault存储机密信息 (一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 2008 安
- 下一篇: python中的列表,添加元素,获取元素