停止 dm-crypt 设备,当加密实例被挂起/停止

https://blueprints.launchpad.net/nova/+spec/stop-dmcrypt-on-suspend

当具有加密 LVM 临时存储的实例被挂起或关机时,断开 dm-crypt 设备与加密 LVM 卷的连接。

问题描述

最近引入的 LVM 临时存储加密功能可以保护用户静态数据。当前实现方式是在实例终止后使用户数据不可读。当实例处于活动状态(例如,运行、暂停、挂起或关机)时,在计算主机上,只有超级用户才能读取数据。通过在实例挂起或关机时断开 dm-crypt 设备并从内存中清除加密密钥,可以进一步加强这种防止未经授权访问的保护。dm-crypt 设备允许访问解密的数据,因此断开它将使任何没有密钥的人都无法读取数据。

用例

一个运行敏感数据的加密实例被停止但未销毁 – 工作稍后将恢复。

项目优先级

提议的变更

该更改将在 libvirt.driver.power_off() 和 libvirt.driver.suspend() 中添加代码以停止 dm-crypt 设备并清除密钥,以及在 libvirt.driver.power_on() 和 libvirt.driver.resume() 中添加代码以检索实例临时加密密钥并重新启动 dm-crypt 设备。

备选方案

没有真正的替代方案。

数据模型影响

REST API 影响

安全影响

当实例关机或挂起时,用户数据将无法被任何人访问。

通知影响

其他最终用户影响

性能影响

对于加密实例,上电和恢复操作的速度会略慢。

其他部署者影响

开发人员影响

实现

负责人

主要负责人

dgenin (Dan Genin)

工作项

  • 为挂起()/恢复() 添加 dm-crypt 停止/重启功能。

  • 为 power_off()/power_on() 添加 dm-crypt 停止/重启功能。

依赖项

测试

将编写单元测试和压力测试来验证所提议功能的正确运行。

文档影响

应在 OpenStack 安全指南中提及将静态数据安全扩展到关机和挂起实例。

参考资料