This document defines the requirements for integrating OpenKCM as a "Key Chain Manager" within the Platform Mesh. It encompasses the backend logic (CRDs) and the frontend delivery mechanism (Microfrontend) that allows users to manage these resources.
The integration is hierarchical:
- Tenant Management: Enabling the provider creates a
Tenant CRD.
- Account Management (L2): Users create
Account CRDs to define Roots of Trust.
- Service Key Management (L3): Users create
ServiceEncryptionKey CRDs for application keys.
- User Experience: All operations are performed via a dedicated Microfrontend (MFE) embedded in the Platform Mesh Console.
1. Tenant Management (FR-100)
Goal: Establish the high-level tenancy container when OpenKCM is enabled for a workspace.
2. L2 Key Management: The "Account" CRD (FR-200)
Goal: Manage the Root of Trust (L2) via the Account CRD.
L3 Key Management: The "ServiceEncryptionKey" CRD (FR-300)
Goal: Manage granular Service Keys (L3) derived from an L2 Account.
-
Mapping: Kind: ServiceEncryptionKey ↔ OpenKCM L3 Key
-
FR-301 (Create ServiceEncryptionKey):
- The user shall be able to create a
ServiceEncryptionKey for a specific application or microservice.
- Binding: The user must select which parent
Account (L2) protects this key.
- Policies:
RotationSchedule: (e.g., "Hourly", "Daily", "30 Days").
Algorithm: (e.g., "AES-GCM-256").
-
FR-302 (Read ServiceEncryptionKey):
- The UI shall display the key's lifecycle state.
- Fields:
CurrentVersion (e.g., v54), NextRotation (Time), ActiveClients (Number of pods using this key).
-
FR-303 (Update ServiceEncryptionKey):
- The user shall be able to modify the
RotationSchedule on the fly.
- Effect: The Controller must update the OpenKCM Policy Engine immediately.
-
FR-304 (Manual Rotation):
- The UI shall provide a "Rotate Now" button.
- Action: Forces an immediate version increment (vX -> vX+1) and pushes the new key to the Crypto Edge.
-
FR-305 (Revocation/Disable):
- The user shall be able to toggle a
ServiceEncryptionKey to Disabled.
- Effect: The OpenKCM Orchestrator must instantly evict this key from all Edge Caches, causing decryption attempts to fail.
4. Microfrontend (MFE) Interface (FR-400)
Goal: Deliver the management capabilities defined above via a seamless, federated plugin within the Platform Mesh Console.
-
FR-401 (MFE Module Loading):
- The Platform Mesh Console (Shell) must dynamically load the
openkcm-resource-mfe remote module.
- The MFE must inherit the Shell's Authentication Context (OIDC Token) and Visual Theme (Dark/Light mode) to appear native.
-
FR-402 (Unified Dashboard View):
- The MFE shall provide a "Key Chain Overview" dashboard tab.
- Content: It must aggregate data from
Tenant, Account, and ServiceEncryptionKey CRDs to show a high-level health summary (e.g., "3 Active Accounts", "12 Keys due for rotation").
-
FR-403 (Resource Management Wizards):
- The MFE must provide guided "Wizards" for the complex creation flows defined in FR-201 and FR-301.
- Account Wizard: Step-by-step selection of Cloud Provider → Region → Key ARN.
- Service Key Wizard: Selection of Parent Account → Definition of Rotation Policy.
-
FR-404 (Visual Topology / Relationship View):
- The MFE shall render a graphical representation of the relationship between
Account (L2) and ServiceEncryptionKey (L3) resources.
- Interaction: Clicking on an L2 node in the graph filters the list to show only its dependent L3 keys.
This document defines the requirements for integrating OpenKCM as a "Key Chain Manager" within the Platform Mesh. It encompasses the backend logic (CRDs) and the frontend delivery mechanism (Microfrontend) that allows users to manage these resources.
The integration is hierarchical:
TenantCRD.AccountCRDs to define Roots of Trust.ServiceEncryptionKeyCRDs for application keys.1. Tenant Management (FR-100)
Goal: Establish the high-level tenancy container when OpenKCM is enabled for a workspace.
FR-101 (Provider Activation -> Tenant Creation):
TenantCustom Resource (CR) in the background.TenantCR name must match the Platform Mesh Workspace ID (e.g.,tenant-root-acme).TenantCR rather than creating a duplicate or erroring.FR-102 (Tenant Status Reflection):
TenantCR status.Provisioning(Grey),Active(Green),Suspended(Red).2. L2 Key Management: The "Account" CRD (FR-200)
Goal: Manage the Root of Trust (L2) via the
AccountCRD.Mapping:
Kind: Account↔OpenKCM L2 Key / Root of TrustFR-201 (Create Account):
Accountresource within the scope of the activeTenant.Name: Unique identifier (e.g.,aws-root-production).ProviderType: Dropdown (AWS KMS, Azure KeyVault, GCP KMS, Thales HSM).KeyReference: The external ARN, URL, or Label of the physical master key.AccountasReady.FR-202 (Read Account):
Accountresources available in the workspace.FR-203 (Update Account / Re-Keying):
Accountspec to rotate the physical Root of Trust (e.g., swapping a compromised AWS ARN for a new one).FR-204 (Delete Account):
Account.ServiceEncryptionKey(L3) resources currently reference this Account.L3 Key Management: The "ServiceEncryptionKey" CRD (FR-300)
Goal: Manage granular Service Keys (L3) derived from an L2 Account.
Mapping:
Kind: ServiceEncryptionKey↔OpenKCM L3 KeyFR-301 (Create ServiceEncryptionKey):
ServiceEncryptionKeyfor a specific application or microservice.Account(L2) protects this key.RotationSchedule: (e.g., "Hourly", "Daily", "30 Days").Algorithm: (e.g., "AES-GCM-256").FR-302 (Read ServiceEncryptionKey):
CurrentVersion(e.g., v54),NextRotation(Time),ActiveClients(Number of pods using this key).FR-303 (Update ServiceEncryptionKey):
RotationScheduleon the fly.FR-304 (Manual Rotation):
FR-305 (Revocation/Disable):
ServiceEncryptionKeytoDisabled.4. Microfrontend (MFE) Interface (FR-400)
Goal: Deliver the management capabilities defined above via a seamless, federated plugin within the Platform Mesh Console.
FR-401 (MFE Module Loading):
openkcm-resource-mferemote module.FR-402 (Unified Dashboard View):
Tenant,Account, andServiceEncryptionKeyCRDs to show a high-level health summary (e.g., "3 Active Accounts", "12 Keys due for rotation").FR-403 (Resource Management Wizards):
FR-404 (Visual Topology / Relationship View):
Account(L2) andServiceEncryptionKey(L3) resources.