承接上文,上邊主要介紹了Azure Key Vault中secret和ARM Template的結合,使用reference引用key vault中的值,下邊來看下ARM Template中的證書文件如何與key vault集成,linux通常還會使用證書登陸比較安全一些,因此接下來就來看下具體怎麼操做linux
通常在登陸Linux的時候,公鑰會保存在linux vm裏,咱們須要的就是使用私鑰進行匹配,經過身份驗證就能夠登錄了,因此咱們須要作的其實就是在部署過程當中把公鑰部署到VM中,ARM Template自己就支持這種作法,而key vault也能夠支持管理證書,因此徹底能夠像引用paasword同樣,引用證書的public key安全
首先須要生成一對祕鑰,用ssh-keygen便可
微信
公鑰和私鑰都已經生成ssh
接下來把公鑰裏的內容上傳到key vault
ide
$publickey=key datablog
$Secret = ConvertTo-SecureString -String $publickey -AsPlainText -Forcedns
Set-AzKeyVaultSecret -VaultName 'AzureKeyVault' -Name 'secretname' -SecretValue $Secret圖片
以後就能夠編輯parameter文件了,仍是同樣須要引用reference的內容,只不過換成了證書而不是secret
ip
"parameters": { "keydata": { "reference": { "keyVault": { "id": "/subscriptions/xxxxxx/resourceGroups/xxxxx/providers/Microsoft.KeyVault/vaults/mxykey" }, "secretName": "keydata" } }, "dnsLabelPrefix": { "value": "mxypre" } }
在deploy文件中引用這個keydata的parameter部署
"publicKeys":[ { "path":"[concat('/home/',parameters('adminUserName'),'/.ssh/authorized_keys')]", "keyData":"[parameters('keydata')]" } ]
接下來正常進行部署便可
使用私鑰進行驗證時,能夠正常鏈接