相信已经很少有人用光驱来安装操作系统了,把U盘或移动硬盘制作成系统安装启动盘即可进行操作系统安装。MS酋长之前已经陆续介绍了大量的Win10系统U盘安装盘制作工具,包括:微软官方的......
Azure Disk Encryption磁盘加密操作图解实例教程
本文内容主要包括如下 3 个大的方面:
- 如何对 Azure IaaS VM 启用 Azure 磁盘加密
- 如何查看虚拟机加密状态
- 如何枚举 Azure 密钥保管库中存储的加密密钥
先决条件
为保证顺利实施 Azure VM 磁盘加密,需要大家的操作环境满足如下先决条件:
- Azure 订阅:这个没啥好说的吧
- Azure PowerShell:请务必使用最新版本的 Azure PowerShell Version 1.2.1 来配置 Azure Disk Encryption。前文简介时已经提过,Azure Disk Encryption 不支持 Azure SDK Version 1.1.0
- Azure 密钥保管库:Azure Disk Encryption 使用 Azure 密钥保管库进行密钥存储,为了保证加密密钥不能跨越 Azure 数据中心边界,所以 Azure Disk Encryption 需要密钥保管库与要加密的 VM 共存于同一区域。
- Azure Active Directory:为将加密密钥写入特定的密钥保管库,Azure Disk Encryption 需要使用 Azure AD 的应用程序客户端 ID和密钥以保证有权限读写 Azure 密钥保管库。
- Azure VM:Azure Disk Encryption 功能仅适用于使用 ARM 创建的 Azure VM。
由于 Azure 磁盘加密与 Azure 密钥保管库结合得异常紧密,甚至可以说是 Azure 密钥保管库分化出来的一个子功能,因此需要大家必需事先了解如何创建和管理Azure Key Vault密钥保管库。
加密Azure VM
在满足上述所列的前提条件后,我们便可以开始着手加密一台 Azure VM。请按如下步骤在 Azure PowerShell 中进行操作:
1登录 Azure 管理员账号
Login-AzureRmAccount
2获取可用 Azure 订阅
Get-AzureRmSubscription
3选择要加密 Azure VM 所在订阅
Select-AzureRmSubscription -SubscriptionName "<订阅名称>"
4在正式加密 Azure VM 之前,我们先在 PowerShell 中预先初始化一些变量,诸如:资源组名称、指定要加密的虚拟机、密钥保管库、Azure AD 信息等。
$rgName = ‘资源组名称';$vmName = ‘虚拟机名称'; $aadClientID = 'Azure AD 应用程序客户端ID';$aadClientSecret = 'Azure AD 应用程序密钥'; $KeyVaultName = ‘KeyVault名称';$KeyVault = Get-AzureRmKeyVault -VaultName $KeyVaultName -ResourceGroupName $rgname;$diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;$KeyVaultResourceId = $KeyVault.ResourceId;
5在虚拟机加密过程中,所产生的加密密钥将被写入到密钥保管库,因此 Azure AD 应用程序必需有将机密数据写入到密钥保管库的权限。大家可以使用如下命令来进行授权:
Set-AzureRmKeyVaultAccessPolicy -VaultName $KeyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys all -PermissionsToSecrets all -ResourceGroupName $rgname;
6使用如下命令启用 Azure 密钥保管库对 Azure Disk Encryption 磁盘加密的支持功能:
Set-AzureRmKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $rgname –EnabledForDiskEncryption
在所有准备工作都完成之后,当然就是要实际对 Azure VM 进行加密操作了。使用 Set-AzureRmVmDiskEncryptionExtension 可直接启用 Azure VM 的加密选项,该 cmdlet 会使用指定 Azure AD 凭据将加密密钥写入到密钥保管库之后开始对虚拟机执行加密操作。
Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $rgname -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId;
由于加密操作过程会执行 10 至 15分钟,时间会比较长,而且可能会重启虚拟机,所以大家在操作前最好先保存正常执行的操作。
一旦你已经启用或部署加密的 Azure VM,可以使用 Get-AzureRmVmDiskEncryptionStatus cmdlet 查看系统盘、数据盘加密状态和加密密钥所在密钥保管库的实际 URL:
Get-AzureRmVmDiskEncryptionStatus -ResourceGroupName $rgname -VMName $vmName
列出已加密虚拟机
如果您的订阅中有很多虚拟机,并要分别查看虚拟机的系统盘的数据盘的加密状态,可以使用如下 Powershell 脚本:
$osVolEncrypted = {(Get-AzureRmVMDiskEncryptionStatus -ResourceGroupName $_.ResourceGroupName -VMName $_.Name).OsVolumeEncrypted}$dataVolEncrypted= {(Get-AzureRmVMDiskEncryptionStatus -ResourceGroupName $_.ResourceGroupName -VMName $_.Name).DataVolumesEncrypted}Get-AzureRmVm | Format-Table @{Label=”VM”; Expression={$_.Name}}, @{Label=”系统盘加密状态”; Expression=$osVolEncrypted}, @{Label=”数据盘加密状态”; Expression=$dataVolEncrypted} -AutoSize
列出加密磁盘对应密钥
要查看订阅中所有已使用 Azure Disk Encryption 功能加密的磁盘及其在密钥保管库中所对应的加密密钥,可以使用如下脚本:
Get-AzureKeyVaultSecret -VaultName $KeyVaultName | where {$_.Tags.ContainsKey('DiskEncryptionKeyFileName')} | format-table @{Label='VM'; Expression={$_.Tags['MachineName']}}, @{Label='VolumeLetter'; Expression={$_.Tags['VolumeLetter']}}, @{Label='EncryptionKeyURL'; Expression={$_.Id}}
标签: Encryption磁盘加密
相关文章
- 详细阅读
-
如何为Win10家庭版开启组策略编辑器功能详细阅读
经常访问Win10专业网的朋友在看到需要编辑组策略的文章时,会发现,每一个教程都提供了两种方法:方法一是配置组策略;方法二是修改注册表。而两种方法的效果则是相同的。之所以这样,......
2022-04-19 316 组策略编辑器
-
Win10下如何使用DISM命令修复Windows映像详细阅读
DISM工具是一个部署映像服务和管理工具,已经陆续分享了一些DISM工具应用技巧。实际上使用DISM工具还可以修复损坏的Windows映像,下面我们来看一下微软官方的使用DISM工具修复Windows映像教程:......
2022-04-19 55 DISM命令 修复Windows映像
- 详细阅读
- 详细阅读