-
Notifications
You must be signed in to change notification settings - Fork 0
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
Syntax for source declaration #1
Comments
Right now, we assume that an application talks to a single secret server, Honestly, the format was never designed for multiple secret servers, or How does AWS_ACCESS_KEY_ID secrets/services/aws:id Indicate that we're pulling from Vault specifically (as opposed to AWS_ACCESS_KEY_ID vault/secrets/services/aws:id Or maybe I'm missing something? @dkastner https://github.com/dkastner @emk https://github.com/emk — |
@emk: I don't have any use cases in mind, it's just not clear to me how a client implementing the Secretfile syntax would go about determining which backend a specific secret comes from. Maybe I'm misunderstanding though. If a library comes across this:
How does it know that it should try Vault (via |
Ah, OK. Let's see if I can explain. The process is driven first by
The key insight is that we never even look at the Secretfile until we've Does this at least make sense of the current design? On Tue, Apr 26, 2016 at 7:07 PM, Andy Rossmeissl [email protected]
|
@emk but what if both |
@emk I guess I'm saying that from a spec perspective if we say that when faced with a Secretfile line we can tokenize it as follows:
The Secretfile consumer parses the line, interpolates env vars into the |
Well, I can see two cases:
In case (1), prefixing keys with "vault/" or "keywhiz/" is insufficient, In case (2), specifying "vault/" on every line of the file is redundant, There's also another important use case to keep in mind here: The entire Now, there are some other interesting use cases that we haven't fully Distributing containers which switch between 12factor and vault at theuser's choice The vision here is that you could package a standard container, and allow Right now, the way that you do this is you install an appropriate I'm not sure whether this is a good design, but it's arguably at least I'm definitely happy to tweak the design here. We already have a number of I'm also willing to consider the idea that we should dump the custom On Tue, Apr 26, 2016 at 7:20 PM, Andy Rossmeissl [email protected]
|
@emk I think you're right that case (1) above — multiple Vaults/Keywhizzes in a single Secretfile — sounds aggressive for now. And I hear you about supporting 12factor style. If we were to write a high-level spec for how a Secretfile-friendly secrets library should behave, would it be something like this?
I realize that's probably wrong in several respects, but as a straw man I see a few immediate issues:
FWIW I like the simple format now and don't see a pressing need to use TOML or HCL. |
These are all excellent ideas. Let me think about the various use cases I do think, however, that it might be best to for the library to pick at I'd strongly prefer for the following function (or its equivalent) to be (Ignore the On Wed, Apr 27, 2016 at 9:05 AM, Andy Rossmeissl [email protected]
|
@emk cool, sounds good. The one problem with the code snippet you linked to (and that behavior in general) is that early, greedy startup-time secret prep may impose an unnecessary burden on development and other toy environments. For example:
In production, there will be no But in, say, development, we never want to talk to Rollbar. So Finally, aren't secrets from Vault often temporary? If they're retrieved at startup time, won't that make it more likely they'll be expired by the time they're needed? Or is the expectation that secrets are employed near startup time as well? (FWIW I like the idea of startup-time secret resolution, but the Rollbar example made me rethink.) |
I definitely agree that we should not fetch secrets at startup time, except in a tool like What I was suggesting is that we choose the backend configuration at startup time. If we want to use the environment, and fall back to vault if no secrets are available, that should be determined at startup, so that we can create all the necessary driver objects together. Certainly, nothing obliges an implementation to do it this way, but I'd like to be possible to fully determine where secrets are supposed to come from (if it turns out we actually need to fetch them) as early in the process as possible. |
@emk OK yep agreed |
How does
Indicate that we're pulling from Vault specifically (as opposed to Keywhiz)? Shouldn't it be something like:
Or maybe I'm missing something?
@dkastner @emk @seamusabshere
The text was updated successfully, but these errors were encountered: