如何以编程方式加密Azure VM数据磁盘

2019年10月15日 41点热度 0条评论

我正在通过azure java sdk创建以编程方式运行Linux的Azure VM,并且正在寻找对驱动器进行加密的方法。操作系统驱动器提供了一种漂亮的.withOSDiskEncryptionSettings方法。但是我没有在数据磁盘文档中看到任何内容。

我确实知道Azure确实会使用它们自己的密钥对这些驱动器进行加密,但是我确实要求能够使用我自己的密钥进行加密。

所以我的问题是-以编程方式管理Azure VM数据磁盘时,加密模式是什么?

解决方案如下:

很抱歉,withOSDiskEncryptionSettings无法按您的要求工作。

实际上,当您使用上传的预加密OS磁盘创建VM时,将使用它。由于它是预加密的磁盘,因此Azure将无法解密数据,并且VM也将无法启动。因此,在这种情况下,您需要告诉Azure磁盘加密设置。有关更多详细信息,您可以参考:Prepare a pre-encrypted Linux VHDSpecify a secret URL when you attach an OS disk

但是,对于新创建的Azure VM,当前,您应该使用磁盘加密扩展名来启用磁盘加密。实际上,这就是您通过Azure门户,Azure CLI或Azure PowerShell执行的操作。例如,对于Azure PowerShell,应运行:Set-AzVMDiskEncryptionExtension -ResourceGroupName MyResourceGroup -VMName "MyVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -SkipVmBackup -VolumeType All

因此,基本上,如果您确实想以编程方式启用磁盘加密。您可以使用Azure Java SDK将扩展添加到您的VM。这是一个示例:ManageVirtualMachineExtension.java

希望以上信息对您有所帮助。