RBD volume encryption
Support Cinder volume encryption with the RBD driver. Change-Id: I23f34d5b16ab8618fc5464190ed627b5acbf1059
This commit is contained in:
parent
1c47dd0690
commit
2f6bcfecc6
162
specs/queens/rbd-encryption.rst
Normal file
162
specs/queens/rbd-encryption.rst
Normal file
@ -0,0 +1,162 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
==========================================
|
||||
RBD Volume Encryption
|
||||
==========================================
|
||||
|
||||
https://blueprints.launchpad.net/nova/+spec/libvirt-qemu-native-luks
|
||||
|
||||
This feature adds support to the Cinder RBD volume driver
|
||||
to support Cinder's volume encryption.
|
||||
|
||||
This requires a few changes in Cinder and Nova due to the fact that
|
||||
RBD volumes are attached by qemu directly and not as block devices
|
||||
on the host.
|
||||
|
||||
This fills a feature gap for the RBD driver in Cinder.
|
||||
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
The RBD driver does not support volume encryption.
|
||||
|
||||
Use Cases
|
||||
=========
|
||||
|
||||
Volume encryption is a common requirement for deployments,
|
||||
particularly where a deployer needs to meet particular security
|
||||
standards.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
Enable volume encryption for RBD via qemu's LUKS block layer.
|
||||
|
||||
This means that Nova has to support libvirt operations to manage
|
||||
this qemu feature. This is done here:
|
||||
|
||||
* https://review.openstack.org/#/c/523958/
|
||||
|
||||
We also need Cinder to format volumes upon creation with a LUKS
|
||||
header. This is currently done by os-brick for iSCSI drivers,
|
||||
but can't be done in the same way for RBD since there is no
|
||||
block device on the compute host, and dm-crypt is not used.
|
||||
|
||||
(Note: this will also be true when using qemu's iSCSI initiator
|
||||
with Nova)
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
This is a security-focused feature, but it uses the already existing
|
||||
infrastructure of Cinder volume encryption.
|
||||
|
||||
The way encryption works when using RBD is slightly different from
|
||||
other Cinder drivers. Decryption/encryption is handled inside of
|
||||
qemu rather than at the device-mapper layer on the host via dm-crypt.
|
||||
|
||||
This means fewer operations having to be run as root, and less exposure
|
||||
of decrypted data to the rest of the system via block devices.
|
||||
|
||||
But, the feature in general has the same security implications as
|
||||
cinder volume encryption does for other drivers.
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
Using encryption could result in slightly higher CPU usage on compute
|
||||
nodes. Should be comparable to using encryption with any other Cinder
|
||||
driver.
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
eharney
|
||||
|
||||
Other contributors:
|
||||
lyarwood
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* https://review.openstack.org/534811/
|
||||
* https://review.openstack.org/523958/
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
* Nova changes here:
|
||||
- https://blueprints.launchpad.net/nova/+spec/libvirt-qemu-native-luks
|
||||
|
||||
* QEMU 2.6
|
||||
* libvirt 2.2.0
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
This feature will be covered by the standard tempest tests used for all
|
||||
volume drivers.
|
||||
|
||||
Gate configuration issues are being sorted out here:
|
||||
https://review.openstack.org/#/c/536350/
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
* Document that volume encryption now works for the RBD volume driver
|
||||
* Current limitation: attached volume migration is not supported
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
* https://review.openstack.org/#/q/topic:bp/libvirt-qemu-native-luks
|
||||
|
||||
* https://blueprints.launchpad.net/nova/+spec/libvirt-qemu-native-luks
|
||||
|
||||
* http://lists.openstack.org/pipermail/openstack-dev/2018-January/126440.html
|
Loading…
Reference in New Issue
Block a user