Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Root signing key rotation and prepublishing #19669

Open
schmichael opened this issue Jan 8, 2024 · 2 comments
Open

Root signing key rotation and prepublishing #19669

schmichael opened this issue Jan 8, 2024 · 2 comments

Comments

@schmichael
Copy link
Member

schmichael commented Jan 8, 2024

Nomad 1.7 uses a root encryption key to encrypt Variables at rest and a root signing key to sign Workload Identities.

These root keys should be rotated automatically using the following logic:

  1. New root key should be generated at root_key_rotation_threshold / 2 and the public signing key published before use in the JWKS endpoint.
  2. At root_key_rotation_threshold the prepublished key will be made active and the old active key will be made inactive
  3. After root_key_rotation_threshold + root_key_gc_threshold after the old key was marked inactive, it should be garbage collected.
    • Update root_key_* docs to reflect that keys are not gc'd until rotation_threshold + gc_threshold are reached to avoid invalidating otherwise valid JWTs in use.
  4. Jobspecs with an identity.tll > root_key_rotation_threshold should receive a Warning on submit.

Prior Art

hashicorp/vault#12414

@tgross
Copy link
Member

tgross commented Jan 9, 2024

What you're envisioning here should cover #19367 and #19368. I'm going to unassign myself from those and if you want, we can either close them out now or you can close them out with this issue.

@schmichael
Copy link
Member Author

Thanks for linking things together Tim.

we can either close them out now or you can close them out with this issue.

I'm going to leave them open until this ships to ensure everything is buttoned up appropriately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants