OneFS Key Manager Rekey Support

The OneFS key manager is a backend service which orchestrates the storage of sensitive information for PowerScale clusters. In order to satisfy Dell’s Secure Infrastructure Ready requirements and other public and private sector security mandates, the manager provides the ability to replace, or rekey, cryptographic keys.

The quintessential consumer of OneFS key management is data-at-rest encryption (DARE). Protecting sensitive data stored on the cluster with cryptography ensures that it’s guarded against theft, in the event that drives or nodes are removed from a PowerScale cluster. DARE is a requirement for federal and industry regulations ensuring data is encrypted when it is stored. OneFS has provided DARE solutions for many years through secure encrypted drives (SED) and the OneFS key management system.

A 256-bit Master Key (MK) encrypts the Key Manager Database (KMDB) for SED and cluster domains. In OneFS 9.2 and later, the MK for SEDs can either be stored off-cluster on a KMIP server, or locally on a node (the legacy behavior).

However, there are a variety of other consumers of the OneFS key manager, in addition to DARE. These include services and protocols such as:

Service Description
CELOG Cluster event log.
CloudPools Cluster tier to cloud service.
Email Electronic mail.
FTP File transfer protocol.
IPMI Intelligent platform management interface for remote cluster console access.
JWT JSON web tokens.
NDMP Network data management protocol for cluster backups and DR.
Pstore Active directory and Kerberos password store.
S3 S3 object protocol.
SyncIQ Cluster replication service.
SmartSync OneFS push and pull replication cluster and cloud replication service.
SNMP Simple network monitoring protocol.
SRS Old Dell support remote cluster connectivity.
SSO Single sign-on.
SupportAssist Remote cluster connectivity to Dell Support.

OneFS 9.5 introduces a number of enhancements to the venerable key manager, including:

  • The ability to rekey keystores. Rekey operation will generate a new MK and re-encrypt all entries stored with the new key.
  • New CLI commands and WebUI options to perform a rekey operation or schedule key rotation on a time interval.
  • New commands to monitor the progress and status of a rekey operation.

As such, OneFS 9.5 now provides the ability to rekey the MK, irrespective of where it is stored.

Note that, when upgrading from an earlier OneFS release, the new rekey functionality is only available once the OneFS 9.5 upgrade has been committed.

Under the hood, each provider store in the key manager consists of secure backend storage and an MK. Entries are kept in a Sqlite database or key-value store. A provider datastore uses its MK to encrypt all its entries within the store.

During the rekey process, the old MK is only deleted after a successful re-encryption with the new MK. If, for any reason, the process fails, the old MK is available and remains as the current MK. The rekey daemon retries the rekey every 15 minutes if the process fails.

The OneFS rekey process is as follows:

  1. A new master key (MK) is generated, and internal configuration is updated.
  2. Any entries in the provider store are decrypted and encrypted with the new MK.
  3. If the prior steps are successful, the previous MK is deleted

To support the rekey process, the MK in OneFS 9.5 now has an ID associated with it. All entries have a new field referencing the master key ID.

During the rekey operation, there are two MK values with different IDs, and all entries in the database will associate which key they are encrypted by.

In OneFS 9.5, the rekey configuration and management is split between the cluster keys and the SED keys:

Rekey Component Detail
SED ·         SED provider keystore is stored locally on each node.

·         SED provider domain already had an existing CLI commands for handling KMIP settings in prior releases.

Cluster ·         Controls all cluster-wide keystore domains.

·         Status shows information of all cluster provider domains.

SED keys rekey

The SED key manager rekey operation can be managed through a DARE cluster’s CLI or WebUI, and can either be automatically scheduled or run manually on-demand. The following CLI syntax can be used to manually initiate a rekey:

# isi keymanager sed rekey start

Alternatively, to schedule a rekey operation. For example, to schedule a key rotation every two months:

# isi keymanager sed rekey modify --key-rotation 2M

The key manager status for SEDs can be viewed as follows:

# isi keymanager sed status

 Node Status  Location  Remote Key ID  Key Creation Date   Error Info(if any)

-----------------------------------------------------------------------------

1   LOCAL   Local                    1970-01-01T00:00:00

-----------------------------------------------------------------------------

Total: 1

Alternatively, from the WebUI, navigate to Access > Key Management >  SED/Cluster Rekey and check the ‘Automatic rekey for SED keys’ and configure the rekey frequency:

Note that for SED rekey operations, if a migration from local cluster key management to a KMIP server is in progress, the rekey process will begin once the migration has completed.

Cluster keys rekey

As mentioned previously, OneFS 9.5 also supports the rekey of cluster keystore domains. This cluster rekey operation is available through the CLI and the WebUI and may either be scheduled or run on-demand. The available cluster domains can be queried by running the following CLI syntax:

# isi keymanager cluster status

Domain     Status  Key Creation Date   Error Info(if any)

----------------------------------------------------------

CELOG      ACTIVE  2023-04-06T09:19:16

CERTSTORE  ACTIVE  2023-04-06T09:19:16

CLOUDPOOLS ACTIVE  2023-04-06T09:19:16

EMAIL      ACTIVE  2023-04-06T09:19:16

FTP        ACTIVE  2023-04-06T09:19:16

IPMI_MGMT  IN_PROGRESS  2023-04-06T09:19:16

JWT        ACTIVE  2023-04-06T09:19:16

LHOTSE     ACTIVE  2023-04-06T09:19:11

NDMP       ACTIVE  2023-04-06T09:19:16

NETWORK    ACTIVE  2023-04-06T09:19:16

PSTORE     ACTIVE  2023-04-06T09:19:16

RICE       ACTIVE  2023-04-06T09:19:16

S3         ACTIVE  2023-04-06T09:19:16

SIQ        ACTIVE  2023-04-06T09:19:16

SNMP       ACTIVE  2023-04-06T09:19:16

SRS        ACTIVE  2023-04-06T09:19:16

SSO        ACTIVE  2023-04-06T09:19:16

----------------------------------------------------------

Total: 17

The rekey process generates a new key and re-encrypts the entries for the domain. The old key is then deleted.

Performance-wise, the rekey process does consume cluster resources (CPU and disk) as a result of the re-encryption phase which is fairly write-intensive. As such, a good practice is to perform rekey operations outside of core business hours, or during scheduled cluster maintenance windows.

During the rekey process, the old MK is only deleted oncer a successful re-encryption with the new MK has been confirmed. In the event of a rekey process failure, the old MK is available and remains as the current MK.

A rekey may be requested immediately or may be scheduled with a cadence. The rekey operation is available through the CLI and the WebUI. In the WebUI, navigate to Access > Key Management > SED/Cluster Rekey.

To start a rekey of the cluster domains immediately, from the CLI run the following syntax:

# isi keymanager cluster rekey start
Are you sure you want to rekey the master passphrase? (yes/[no]):yes

Alternatively, from the WebUI, navigate to Access under the SED/Cluster Rekey tab, select Rekey Now button, next to Cluster Keys:

A scheduled rekey of the cluster keys (excluding the SED keys) can be configured from the CLI with the following syntax:

# isi keymanager cluster rekey modify --key-rotation [YMWDhms].

Specify the frequency of the ‘key rotation’ field as an integer, using Y for years, M for months, W for weeks, D for days, h for hours, m for minutes, and s for seconds. For example, the following command will schedule the cluster rekey operation to execute every six weeks:

# isi keymanager cluster rekey view
Rekey Time: 1970-01-01T00:00:00
Key Rotation: Never
# isi keymanager cluster rekey modify --key-rotation 6W
# isi keymanager cluster rekey view
Rekey Time: 2023-04-28T18:38:45
Key Rotation: 6W

The rekey configuration can be easily reverted back to on-demand from a schedule as follows:

# isi keymanager cluster rekey modify --key-rotation Never
# isi keymanager cluster rekey view
Rekey Time: 2023-04-28T18:38:45
Key Rotation: Never

Alternatively, from the WebUI, under the SED/Cluster Rekey tab, select the Automatic rekey for Cluster keys checkbox and specify the rekey frequency. For example:

In an event of a rekeying failure a CELOG ‘KeyManagerRekeyFailed’ or ‘KeyManagerSedsRekeyFailed’ event is created. Since SED rekey is a node-local operation, the ‘KeyManagerSedsRekeyFailed’ event information will also include which node experienced the failure.

Additionally, current cluster rekey status can also be queried with the following CLI command:

# isi keymanager cluster status

Domain     Status  Key Creation Date   Error Info(if any)

----------------------------------------------------------

CELOG      ACTIVE  2023-04-06T09:19:16

CERTSTORE  ACTIVE  2023-04-06T09:19:16

CLOUDPOOLS ACTIVE  2023-04-06T09:19:16

EMAIL      ACTIVE  2023-04-06T09:19:16

FTP        ACTIVE  2023-04-06T09:19:16

IPMI_MGMT  ACTIVE  2023-04-06T09:19:16

JWT        ACTIVE  2023-04-06T09:19:16

LHOTSE     ACTIVE  2023-04-06T09:19:11

NDMP       ACTIVE  2023-04-06T09:19:16

NETWORK    ACTIVE  2023-04-06T09:19:16

PSTORE     ACTIVE  2023-04-06T09:19:16

RICE       ACTIVE  2023-04-06T09:19:16

S3         ACTIVE  2023-04-06T09:19:16

SIQ        ACTIVE  2023-04-06T09:19:16

SNMP       ACTIVE  2023-04-06T09:19:16

SRS        ACTIVE  2023-04-06T09:19:16

SSO        ACTIVE  2023-04-06T09:19:16

----------------------------------------------------------

Total: 17

Or, for SEDs rekey status:

# isi keymanager sed status

 Node Status  Location  Remote Key ID  Key Creation Date   Error Info(if any)

-----------------------------------------------------------------------------

1   LOCAL   Local                    1970-01-01T00:00:00

2   LOCAL   Local                    1970-01-01T00:00:00

3   LOCAL   Local                    1970-01-01T00:00:00

4   LOCAL   Local                    1970-01-01T00:00:00

-----------------------------------------------------------------------------

Total: 4

The rekey process also outputs to the /var/log/isi_km_d.log file, which is a useful source for additional troubleshooting.

If an error in rekey occurs, the previous MK is not deleted, so entries in the provider store can still be created and read as normal. The key manager daemon will re-attempt rekey operation in the background every fifteen minutes until it succeeds.

Leave a Reply

Your email address will not be published. Required fields are marked *