-
Notifications
You must be signed in to change notification settings - Fork 2k
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
keyring: support external KMS for key encryption key (KEK) #23580
Conversation
497983a
to
fb740ed
Compare
fb740ed
to
2b15046
Compare
2b15046
to
d720c5e
Compare
d720c5e
to
02fd37c
Compare
02fd37c
to
e7dde55
Compare
f80bfe3
to
fd75fe1
Compare
fd75fe1
to
56ada90
Compare
56ada90
to
0bbe907
Compare
0bbe907
to
ca0ad51
Compare
ca0ad51
to
8f123e7
Compare
In Nomad 1.4.0, we shipped support for encrypted Variables and signed Workload Identities, but the key material is protected only by a AEAD encrypting the KEK. Add support for Vault transit encryption and external KMS from major cloud providers. The servers call out to the external service to decrypt each key in the on-disk keystore. Ref: https://hashicorp.atlassian.net/browse/NET-10334 Fixes: #14852
f29a23d
to
0f2ca08
Compare
In #23580 we're implementing support for encrypting Nomad's key material with external KMS providers or Vault Transit. This changeset breaks out the documentation from that PR to keep the review manageable and present it to a wider set of reviewers. Ref: https://hashicorp.atlassian.net/browse/NET-10334 Ref: #14852 Ref: #23580
In #23580 we're implementing support for encrypting Nomad's key material with external KMS providers or Vault Transit. This changeset breaks out the E2E infrastructure and testing from that PR to keep the review manageable. Ref: https://hashicorp.atlassian.net/browse/NET-10334 Ref: #14852 Ref: #23580
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Very excited to see this land.
// fallbackVaultConfig allows the transit provider to fallback to using the | ||
// default Vault cluster's configuration block, instead of repeating those | ||
// fields |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh this is a really nice detail.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is really awesome! 👍 Should we also add some tests for the gcp and azure external kms just in case we ever face different behaviours than the aws kms one?
It's a good question. Unfortunately we only have an E2E environment for AWS (see #23601) for those tests. But fortunately the wrapper library's API is nicely designed such that the caller really doesn't have to care about the specifics, so then the wrapper library's own tests gives us the coverage we need to feel confident about shipping this. |
In Nomad 1.4.0, we shipped support for encrypted Variables and signed Workload Identities, but the key material is protected only by a AEAD encrypting the KEK. Add support for Vault transit encryption and external KMS from major cloud providers. The servers call out to the external service to decrypt each key in the on-disk keystore. Ref: https://hashicorp.atlassian.net/browse/NET-10334 Fixes: #14852
In #23580 we're implementing support for encrypting Nomad's key material with external KMS providers or Vault Transit. This changeset breaks out the E2E infrastructure and testing from that PR to keep the review manageable. Ref: https://hashicorp.atlassian.net/browse/NET-10334 Ref: #14852 Ref: #23580
In #23580 we're implementing support for encrypting Nomad's key material with external KMS providers or Vault Transit. This changeset breaks out the documentation from that PR to keep the review manageable and present it to a wider set of reviewers. Ref: https://hashicorp.atlassian.net/browse/NET-10334 Ref: #14852 Ref: #23580
I'm going to lock this pull request because it has been closed for 120 days ⏳. This helps our maintainers find and focus on the active contributions. |
In Nomad 1.4.0, we shipped support for encrypted Variables and signed Workload Identities, but the key material is protected only by a AEAD encrypting the KEK. Add support for Vault transit encryption and external KMS from major cloud providers. The servers call out to the external service to decrypt each key in the on-disk keystore.
Ref: https://hashicorp.atlassian.net/browse/NET-10334
Fixes: #14852
Notes for reviewers: