-
-
Notifications
You must be signed in to change notification settings - Fork 903
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
Secret generation #249
Comments
As this proposal involves writing to the secret stores, I could see just a little bit different use-case: When using wildcard-certificates with let's encrypt and cert-manager, the certificate sometimes must be copied to other namespaces or clusters. So when not only allowing to generate a new secret, but additionally to watch on an existing secret and write this to the stores whenever it changes, the secret can be used in other namespaces by just creating a "normal" external secret. |
@joggeli34 while I do agree that the sync use-case is valid, I don't think external-secret is the right tool to do it. By synchronizing with the external store and then back into the cluster, we risk exposing secrets unnecessarily, because they could be accessed by anyone with read permissions on the external store key. However, this approach could be interesting to share secrets generated by other systems (like cert-manager in your example) with non-kubernetes system that can access the same store. I think it's a good idea but the security implications of this feature should be carefully evaluated |
Just as a sidenote: some people use crossplane to generate/write secrets to AWS Secrets Manager and use ESO solely for the read-path. |
I see the value in this but I think it should be broken up into two separate features:
|
This is a very good idea @iAnomaly . I see how we could use this separation to distinguish between generating secrets that developers might want to retrieve manually from the store (e.g. an initial admin password) and secrets that are only for the application to use (e.g. a secret key to sign cookies or something). |
We thought about it and multi-provider secret sync could be very awesome, with some failover capabilities, and some stuff working out of the box. We want to pursue that. For our secret generation to throw them at external providers, we think that Crossplane (or any other tool made for that) would be better. There are some efforts on implementing that for gcp (crossplane-contrib/provider-gcp#305) and the AWS already provider supports it. Efforts there seem to make more sense. Please let me know if you want to re-open this issue or if you want to further discuss, feel free to do so! :) |
Discussed in #195
Originally posted by MatteoJoliveau June 17, 2021
Hello community!
We're using the old
kubernetes-external-secrets
controller and are in the verge of migrating to this new implementation that we already like very much.One feature that I think would be very useful to reduce manual intervention is secrets generation, that is the ability for
external-secrets
to generate a secret string (e.g. a password) based on some parameters, store it in the backing SecretStore if the key does not exist yet or read it if it already does. There are a lot of secrets that can be generated on the fly and configured, some examples:SECRET_KEY_BASE
variable)Bonus round:
external-secrets
could also rotate the secrets it generates following some provided configuration to increase security.Example API implementation:
Feedbacks are most welcome on this proposal!
The text was updated successfully, but these errors were encountered: