Skip to content

CMK: Customer-Managed Keys ​

CMK is the OpenKCM component that lets the customers of a cloud service govern the keys that protect their data, at rest and in transit. Tenants use it to create, import or link their keys, to decide which systems use which key, and to control the key lifecycle, with roles, approvals and audit events for every change. One key can be shared by many systems: a change to the key reaches all of them.

CMK manages metadata and policy. The customer keys stay in a keystore, and their key operations are performed there. For the cryptographic keys below the customer keys, which protect the data, CMK requires Krypton: the CMK-2-Krypton Bridge turns CMK's decisions, such as creating, enabling, disabling or deleting a key, into Krypton operations.

What CMK does ​

CapabilityDescription
Customer keysImport the customer's key material (BYOK), or link keys from the customer's own keystore (HYOK)
Key lifecycleEnable, disable, detach and delete keys, and track key versions
SystemsLink the tenant's systems to a key, switch them to another key, or unlink them
PropagationSend key and system changes to the systems of every region and track the result
TenantsRegister tenants centrally in the Registry, each with the region that serves it; onboard and offboard them, block and unblock them
IdentityLet each tenant sign in with its own identity provider and use its own user directory
RolesSeparate tenant administrators, key administrators and auditors
ApprovalsRequire approval by other users for sensitive key operations
AuditRecord key, system, login and access events, and send them to the operator's audit collector (OTLP)
Cryptographic keysHave Krypton create and operate the key hierarchy of each tenant and service, through the CMK-2-Krypton Bridge

Key types ​

Key typeWhat the tenant doesWhat CMK does
BYOKWraps their own key material with a key provided by the keystore and uploads itPasses the wrapped material to the keystore, without keeping it
HYOKCreates a key in their own keystore and registers itLinks the existing key, checks its state regularly and propagates changes

See Core concepts for a comparison.

Key lifecycle ​

  • Disable and enable. A key administrator disables a key in CMK, or, for HYOK keys, the customer disables it in their own keystore. CMK informs every linked system of the change.
  • New key versions. Key material is never generated by CMK. New versions are created in the keystore; CMK detects them for HYOK keys and informs the linked systems.
  • Detach and delete. Keys can be detached from their systems and deleted when they are no longer needed.

Changes reach the systems asynchronously. How quickly a system stops using a disabled key depends on that system.

How CMK works ​

CMK is deployed in two parts:

  • A central deployment with the Registry. It knows every tenant and the region that serves it, and every system of the cloud services and the tenant it belongs to.
  • A regional deployment for each CMK region, with the CMK service, the CMK UI, ExtAuthZ and Session Manager. It serves the tenants registered for its region: their users sign in and manage their keys there, and their data stays in that region's databases.
ServiceDeploymentRole
RegistryCentralRegisters tenants, with their region, and the systems that use their keys
CMK serviceRegionalAPI, business logic, workflows and propagation
CMK UIRegionalWeb console
Session ManagerRegionalSign-in with the tenant's identity provider
ExtAuthZRegionalChecks every API request at the gateway
CMK-2-Krypton BridgeRegionalTurns CMK's key decisions into Krypton operations (early stage)

Keystores and user directories connect through plugins. Today CMK includes a plugin for AWS KMS and plugins for SCIM directories; further keystores can be added as plugins.

Security in brief ​

  • No key material in CMK. CMK holds references, metadata and policy only.
  • Every request is checked twice. ExtAuthZ authenticates the caller at the gateway and signs the result; CMK verifies that signature and the caller's role.
  • Tenant isolation. Each tenant has its own identity provider, roles and database schema.
  • Separation of duties. A user holds exactly one role in a tenant, and sensitive operations can require approval.
  • Auditability. Changes and rejected requests are sent as audit events.

The CMK security documentation explains each of these in detail.

Learn more ​

EU and German government funding logos

Funded by the European Union – NextGenerationEU.

The views and opinions expressed are solely those of the author(s) and do not necessarily reflect the views of the European Union or the European Commission. Neither the European Union nor the European Commission can be held responsible for them.