快速入门:在 Azure 中使用 Azure PowerShell 创建和加密 Linux VM

适用于:✔️ Linux VM ✔️ 灵活规模集

Azure PowerShell 模块用于从 PowerShell 命令行或脚本创建和管理 Azure 资源。 本快速入门介绍如何使用 Azure PowerShell 模块创建 Linux 虚拟机 (VM)、创建用于存储加密密钥的密钥保管库以及加密 VM。 本快速入门使用 Canonical 提供的 Ubuntu 16.04 LTS 市场映像和 VM Standard_D2S_V3 大小。

如果没有 Azure 订阅,可在开始前创建一个试用帐户

创建资源组

使用 New-AzResourceGroup 创建 Azure 资源组。 资源组是在其中部署和管理 Azure 资源的逻辑容器:

New-AzResourceGroup -Name "myResourceGroup" -Location "ChinaEast2"

创建虚拟机

使用 New-AzVM 创建 Azure 虚拟机,并将前面创建的 VM 配置对象传递给它。

$cred = Get-Credential

New-AzVM -Name MyVm -Credential $cred -ResourceGroupName MyResourceGroup -Image Canonical:UbuntuServer:18.04-LTS:latest -Size Standard_D2S_V3

部署 VM 需要数分钟。

创建为加密密钥配置的密钥保管库

Azure 磁盘加密将其加密密钥存储在 Azure 密钥保管库中。 使用 New-AzKeyvault 创建一个密钥保管库。 要使密钥保管库能够存储加密密钥,请使用 -EnabledForDiskEncryption 参数。

重要

每个密钥保管库必须有一个在 Azure 中唯一的名称。 在下面的示例中,将 <your-unique-keyvault-name> 替换为你选择的名称。

New-AzKeyvault -name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location ChinaEast2 -EnabledForDiskEncryption

加密虚拟机

使用 Set-AzVmDiskEncryptionExtension 加密 VM。

Set-AzVmDiskEncryptionExtension 需要密钥保管库对象中的一些值。 可以通过将密钥保管库的唯一名称传递给 Get-AzKeyvault 来获取这些值。

$KeyVault = Get-AzKeyVault -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup"

Set-AzVMDiskEncryptionExtension -ResourceGroupName MyResourceGroup -VMName "MyVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -SkipVmBackup -VolumeType All

几分钟后,进程将返回以下内容:

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK

可以通过运行 Get-AzVmDiskEncryptionStatus 来验证加密过程。

Get-AzVmDiskEncryptionStatus -VMName MyVM -ResourceGroupName MyResourceGroup

启用加密后,你将在返回的输出中看到以下内容:

OsVolumeEncrypted          : EncryptionInProgress
DataVolumesEncrypted       : NotMounted
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : OS disk encryption started

清理资源

不再需要时,可以使用 Remove-AzResourceGroup cmdlet 删除资源组、VM 和所有相关资源:

Remove-AzResourceGroup -Name "myResourceGroup"

后续步骤

在本快速入门中,你创建了一个虚拟机,创建了一个启用加密密钥的密钥保管库,并对 VM 进行了加密。 请继续学习下一篇文章,详细了解 Linux VM 的 Azure 磁盘加密。