Windows操作系统作为优秀的操作系统,由开发操作系统的微软公司控制接口和设计,公开标准,因此,有大量商业公司在该操作系统上开发商业软件。 本文内容主要包括如下 3 个大的方面:
先决条件为保证顺利实施 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}} Windows操作系统对硬件支持良好。 |
温馨提示:喜欢本站的话,请收藏一下本站!