尽管虚拟机加密技术已经出现一段时间,但是仍然存在很多问题,因此VMware希望通过vSphere 6.5的全新虚拟机加密工具改变这种现状。
尽管虚拟机加密技术能够限制未授权访问从而提升系统安全性,但是这种技术一直以来发展十分缓慢,主要原因在于系统存在的各种问题。VMware希望vSphere 6.5中的VM Encryption 工具能够帮助解决这些问题。vSphere 6.5 VM Encryption并不直接针对guest OS,而是虚拟机文件系统的hypervisor。使用这种方式,不论guest OS是Windows还是Linux,都不需要安装任何客户端软件。
VM Encryption工作原理
VM Encryption通过存储策略进行管理。vSphere 6.5提供了存储策略管理(Storage Policy-Based Management)系统,管理员可以使用其创建策略,为虚拟磁盘和虚拟机配置文件定义存储需求。
如图A所示,在虚拟机存储策略页面,管理员可以更改VM Encryption的存储策略样例,之后将其应用到虚拟机对象,比如虚拟磁盘。
图A.创建自定义VM Encryption策略
如果想要配置VM Encryption,管理员必须首先添加KMS(密钥管理服务器),因为其并不是系统内置组件;管理员可以选择任何一种可用——或者免费——产品。选择vCenter Server,之后遵循如下步骤:Management->Key Management Service-> Add Server。
虚拟机和虚拟磁盘控制器之间所有的I/O流量都会通过内核模块进行加密,这也是ESXi hypervisor的一部分。之后这些I/O会被发送到存储层。
“加密”意味着什么?
所有虚拟机文件——包括VMDK、VMX配置文件、快照文件以及VMX交换文件——都会被存储在文件夹中,因此这些文件都将会被加密。
加密由hypervisor进行管理,而不是guest VM,因此访问虚拟机内存并不能获取密钥。
如何在vMotion中使用VM Encryption功能
管理员还可以在vMotion过程中对虚拟机进行加密。一旦虚拟机需要进行vMotion迁移, vCenter Server将会生成一个随机的256位密钥,之后将其封装发送到vMotion的相关主机。
vMotion就可以使用这个密钥来加密数据了。
管理员可以选择对虚拟机还是vMotion进行加密,但是需要注意的是只有在对虚拟机加密之后才能进行vMotion加密。
相关功能在虚拟机硬件层实现。如图B所示,加密vMotion为管理员提供了三种选项: Disabled、 Opportunistic或者Required。 Disabled表示不使用vMotion加密功能, Opportunistic表示仅当目标主机支持时才对vMotion进行加密,否则其使用非加密vMotion。而***一种方式 Required,表示管理员需要对vMotion进行加密,系统将会对目标主机——vSphere 6.5——进行检查,查看其是否支持加密,如果不支持,那么vMotion将会失败。
图B. 加密的vMotion加密选项
配置虚拟机加密的过程非常简单。如果管理员已经配置好KMS,那么只需要将vCenter Server重定向到KMS服务器,创建加密策略并且应用到指定虚拟机,加密vMotion流量也非常简单,但是需要两端都使用***的ESXi 6.5。