Open jrschumacher opened 2 weeks ago
@jrschumacher is this statement accurate given your proposed schema?
"During a key rotation, a new key (row) is added to the KeyAccessServerKey
table and the current_key
(on one or multiple) KAS is updated to that new key. The old keys will persist within policy (un-utilized as non-current) and are not deleted upon rotation."
That is my assumption. If we don't need to persist the keys then we really don't need a separate table.
It's also worth discussing how this would work for KASes managed by the platform and KASes managed remotely.
Enhance Key Access Server table to support key rotations
Context and Problem Statement
The Key Access Server policy store supports a single key and many key access grants. The original design assumed that only a single key would be held at a given time and if a rotation was needed the key access server's public key would be replaced with a new on.
It appears that this may not be a good long term strategy and some enhancement is needed to track the key rotations for remote KAS (whether considered part of the platform or external to the platform).
Decision Drivers
Considered Options
public_key
jsonb typed columnDecision Outcome
Chosen option: "{title of option}"
Store multiple keys within the
public_key
jsonb typed columnCreate an auxiliary table to store the keys
References