Bug 1817196

Summary: [RFE] Validation of NBDE encrypted volume as supported storage resources in pacemaker
Product: Red Hat Enterprise Linux 7 Reporter: Andrea Perotti <aperotti>
Component: pacemakerAssignee: Ken Gaillot <kgaillot>
Status: CLOSED NOTABUG QA Contact: cluster-qe <cluster-qe>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.7CC: cfeist, cluster-maint, cluster-qe, kgaillot, sbradley
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1817192 Environment:
Last Closed: 2020-03-25 22:31:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1817192    
Bug Blocks:    

Description Andrea Perotti 2020-03-25 18:47:39 UTC
+++ This bug was initially created as a clone of Bug #1817192 +++

1. What is the nature and description of the request?

Is it possible to encrypt via LUKS a volume, that have to be used by a pacemaker cluster?

According to the following solution:

How can I share a dm-crypt or LUKS encrypted volume to a cluster?
https://access.redhat.com/solutions/31567

this is not doable, because you have to provide a password to decrypt the volume.

In RHEL 7.4 has been introduced a technology called Network-Bound Disk Encryption (NBDE), that allow the decryption of a volume without providing a password. Below the related documentation:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/security_guide/index#sec-Using_Network-Bound_Disk_Encryption

where is also reported that:

"The provisioning state for NBDE is stored in the LUKS header leveraging the luksmeta package. When the client is ready to access its data, it loads the metadata produced in the provisioning step and it responds to recover the encryption key. This process is the recovery step."

The fact that the all the info are stored in the luks volume itself make every host with equal clevis+tang configuration to be able to decrypt it.


2. Why would you need this? (List the business requirements here)

With the advent of GDPR and other data protection regulations, is required to adopt encryption on the volumes storing sensible data, and often applications managing those data are in high availability via pacemaker.


3. How would you like to achieve this? (List the functional requirements here)  

pacemaker have to be able to manage single luns or Logical Volumes encrypted with Luks via tang/clevis (NBDE) in physical/virtual environments.


4. For each functional requirement listed, specify how you can test to confirm the requirement is successfully implemented.   

* entire volume use case
- Create a pacemaker cluster (2 nodes will be enough)
- install 2 tang servers
- configure each cluster member with clevis, and config to refer to both tang servers
- add a block storage volume to cluster
- encrypt it entirely as NBDE
- create a fs on it
- add the fs resource to the cluster
- relocate it
- ensure fs is available and mounted also on the second node
(bonus, test how the cluster react in case of unavailability of one of the 2 tang servers)

* ha-lvm use case
- Create a pacemaker cluster (2 nodes will be enough)
- install 2 tang servers
- configure each cluster member with clevis, and config to refer to both tang servers
- add a block storage volume to cluster
- add ha-lvm resource
- create 2 logical volumes
- encrypt one of two as NBDE
- create a fs on both lv
- add the fs resource to the cluster
- relocate the lun
- ensure fs are available and mounted also on the second node
(bonus, test how the cluster react in case of unavailability of one of the 2 tang servers)



5. Do you have any specific timeline dependencies ?  

No explicit deadline, but given NBDE is available since 7.4, and given this extra layer should be transparent to the cluster, would be appreciate if this would be considered as an urgent topic.


6. Would you be able to assist in testing this functionality if implemented?

Yes