You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[*Major Security Improvement*]
* This release introduces 'entombment' of Vault secrets into Credhub for
increased security in the transport of your secrets on deployment.
In previous versions, the `(( vault ... ))` operators in the manifest
fragments, your environment and ops/ YAML files would resolve locally,
placing the secrets needed from vault into the manifest.
Unfortunately, this would be done in clear text.
The alternative secret store is Credhub, and a few kits still use
Credhub to contain the deployments secrets. However, Credhub lacks
the ability to manage your secrets as well as Vault, requiring a
different tooling, or just simply deleting all secrets and allowing
them to be generated again. The final issue is that becase the
placeholder variable doesn't change, there is no visual confirmation
that you have changed the value of a Credhub secret on deployment.
Genesis 2.9.0 brings you the best of both worlds!
Vault remains the single source of truth, and you can manage your
secrets with the Genesis add-secrets, check-secrets, rotate-secrets
and remove-secrets commands, independent of the BOSH director.
However, when it comes time to deploy your manifest, Genesis
determines what Vault paths are being used by the manifest, pulls them
into memory, runs a sha1sum on the values, then determines Credhub
path to inject each of those Vault values into based on its vault path
and value. This results in a unique and idempotent variable that only
changes if the value it contains changes. The value is stored at that
path in Credhub if it doesn't already exist.
When merging the manifest, the vault operators now resolve to that
unique Credhub path that contains the desired value, and there are no
longer any cleartext secrets in the manifest, the log, or even if you
pull down the manifest using the `bosh manifest` command.
This is enabled on default for the `genesis deploy` command, and can
be enabled using the `--entomb` option for the manifest and lookup
commands. Likewise, it can be disabled on the deploy command with
--no-entomb option. You can also set it as a local setting in your
~/.genesis/config file with `entomb_secrets` key that can be set true
or false. The command line options will take precedent over the
config file.
Note: The values are left in Credhub after the deploy to ensure any
recreate or other BOSH operations that require the manifest to be
intact still work. Over time, this will result in Credhub containing
values that are no longer used, including expired X509 certificates,
which may trigger false positives in Doomsday cert expiry monitoring
tool. Future version of Genesis will enable cleaning out any old
values that are no longer being used.
0 commit comments