The approach that I've taken is to encrypt sensitive data and store
the decryption key in consul. Then I set ACLs on the decryption key. I
can then see all keys, all unencrypted values (role = "worker"), and
if I don't have permissions on the decryption key, then I can see the
encrypted form of the config variable (private/password =
"encrypted:$ENCRYPTED_STRING". The nice thing about this for me is
that I'm versioning configs inside consul, and the developers can
*copy* encrypted data to make a new version of their configs, but they
still can't see the secret, because they don't have read permission on
the decryption key. I then decrypt the string on application startup,
setting environment variables for the application to use.
Here's the structure I'm using:
/keys/$environment/$application = "$DECRYPTION_KEY"
/configs/$environment/$application/$version/$key = "$plaintext_value"
/configs/$environment/$application/$version/$key = "encrypted:$encrypted_value"
Pete
> --
> You received this message because you are subscribed to the Google Groups
> "Consul" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to
consul-tool...@googlegroups.com.
> For more options, visit
https://groups.google.com/d/optout.