LiJie20190102 opened a new issue, #14398:
URL: https://github.com/apache/gravitino/issues/14398

   ### Describe the subtask
   
   **Priority:** P0
   
   **Dependencies:** #<id-2>
   
   **Problem:** Nothing owns the master key lifecycle. Without a generated, 
KMS-wrapped master
   key that is unwrapped once at startup and held only in memory, neither the 
DB-backed secret
   provider nor encrypted configuration values have anything to decrypt with.
   
   **Scope:**
   - Operator tooling to generate a random 256-bit master key and wrap it with 
the configured
     seal, producing the blob stored as `gravitino.security.master.key.wrapped`.
   - `MasterKeyHolder`: a process-wide holder backed by a wipeable `SecretKey` 
/ `byte[]`,
     zeroed on shutdown; the plaintext key is never logged, persisted, or 
returned by any API.
   - Startup ordering per the design doc (§5.3): `SealClientRegistry` → unwrap 
master key →
     `MasterKeyHolder` → decrypt encrypted config values → entity store 
connects →
     `SecretProviderRegistry` loads the `db` provider.
   - When no wrapped master key is configured and no configuration value is 
encrypted, the
     server behaves exactly as today.
   - Unit tests for the generation/wrap tooling and the holder lifecycle 
(including
     wipe-on-shutdown).
   
   ### Parent issue
   
   #14396


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to