使用 Key Vault 中儲存的密碼部署 Azure Stack Hub VM
此文將逐步解說如何使用存放在 Azure Stack Hub Key Vault 中的密碼部署 Windows Server 虛擬機器 (VM)。 使用金鑰保存庫密碼比傳遞純文字密碼更為安全。
概觀
您可以將密碼之類的值儲存為 Azure Stack Hub 金鑰保存庫中的密碼。 建立密碼之後,您可以在 Azure Resource Manager 範本中加以參考。 透過資源管理員使用密碼有下列優點︰
- 您不需要在每次部署資源時手動輸入密碼。
- 您可以指定哪些使用者或服務主體可以存取密碼。
必要條件
- 您必須訂閱包含 Key Vault 服務的供應項目。
- 安裝適用於 Azure Stack Hub 的 PowerShell。
- 設定您的 PowerShell 環境。
下列步驟說明擷取存放在 Key Vault 中的密碼來建立 VM 所需的程序:
- 建立 Key Vault 祕密。
- 更新
azuredeploy.parameters.json
檔案。 - 部署範本。
注意
您可以從 Azure Stack 開發套件 (ASDK),或從外部用戶端 (如果是透過 VPN 連線) 來使用這些步驟。
建立 Key Vault 祕密
下列指令碼會建立金鑰保存庫,並將密碼存放為金鑰保存庫中的祕密。 建立金鑰保存庫時,請使用 -EnabledForDeployment
參數。 此參數可確保您能夠從 Azure Resource Manager 範本參考金鑰保存庫。
$vaultName = "contosovault"
$resourceGroup = "contosovaultrg"
$location = "local"
$secretName = "MySecret"
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
New-AzKeyVault `
-VaultName $vaultName `
-ResourceGroupName $resourceGroup `
-Location $location
-EnabledForTemplateDeployment
$secretValue = ConvertTo-SecureString -String '<Password for your virtual machine>' -AsPlainText -Force
Set-AzureKeyVaultSecret `
-VaultName $vaultName `
-Name $secretName `
-SecretValue $secretValue
當您執行上述指令碼時,輸出會包含祕密 URI (統一資源識別項)。 請記下此 URI。 在使用金鑰保存庫範本中的密碼部署 Windows VM 中,您必須參考該 URI。 將 101-vm-secure-passwor \(英文\) 資料夾下載至您的開發電腦上。 此資料夾中包含 azuredeploy.json
和 azuredeploy.parameters.json
檔案,您在接下來的步驟中將需要這些檔案。
根據您的環境值,修改 azuredeploy.parameters.json
檔案。 要注意的參數是保存庫名稱、保存庫資源群組以及祕密 URI (產生自先前的指令碼)。 以下檔案是參數檔案的範例。
更新 azuredeploy.parameters.json 檔案
根據您的環境,以 KeyVault URI、secretName、VM adminUsername 的值來更新 azuredeploy.parameters.json
檔案。 下列 JSON 檔案會顯示範本參數檔案的範例:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"adminUsername": {
"value": "demouser"
},
"adminPassword": {
"reference": {
"keyVault": {
"id": "/subscriptions/xxxxxx/resourceGroups/RgKvPwd/providers/Microsoft.KeyVault/vaults/KvPwd"
},
"secretName": "MySecret"
}
},
"dnsLabelPrefix": {
"value": "mydns123456"
},
"windowsOSVersion": {
"value": "2016-Datacenter"
}
}
}
範本部署
現在,使用下列 PowerShell 指令碼部署範本:
New-AzResourceGroupDeployment `
-Name KVPwdDeployment `
-ResourceGroupName $resourceGroup `
-TemplateFile "<Fully qualified path to the azuredeploy.json file>" `
-TemplateParameterFile "<Fully qualified path to the azuredeploy.parameters.json file>"
成功部署範本之後,會產生下列輸出: