[chef] Re: Re: Re: Sensitive Data w/ Solo


Chronological Thread 
  • From: Ruby Newbie < >
  • To:
  • Subject: [chef] Re: Re: Re: Sensitive Data w/ Solo
  • Date: Fri, 18 Jun 2010 15:46:54 -0400

Hey, Michael.

On Jun 18, 2010, at 2:48 PM, Michael Guterl wrote:
> I'm still relatively new to Chef and I may be missing something
> obvious.  If you don't keep the secrets directory as part of the repo,
> how do you get the secrets to the server that you're provisioning?
Sorry, my first response wasn't clear. I guess that the whole discussion 
around where to store secret data is motivated by security concerns, so 
instead of asking whether the secrets are "part of" the configuration repo, 
perhaps we should address:
1) Whether the secret data is stored in the same source-code-management 
repository as the rest of the config; and 
2) Whether the secrets are available to people who need to configure new 
nodes (whether using chef-client, or chef-solo).

Presumably we all would like to make sure that the answer to the first 
question is "no". Both of the mechanisms described so far in response to your 
inquiry (merging the secrets into a special role at launch time, and storing 
them in some external server, like Chef's own data bags) satisfy this 
condition.

However, I can't think of an easy way to satisfy the second condition. Any 
person in your organization who requires the capability to configure nodes, 
is ultimately going to require SOME level of access to whatever secrets those 
nodes need. Even if the secrets are stored in some Kerberos-like, 
time-limited key server, at some point the data needed to authenticate to 
THAT needs to be generated and given to the node.

So the important thing for my team was just to make sure that secrets are 
properly compartmentalized, so that developers, testers, and production ops 
personnel can all use the same shared config without overly compromising 
security. When production nodes are launched, they pull the secrets from the 
special-purpose role stored in the Chef server, but when I want to try out a 
node configuration using Chef solo, I have a rake task that does the 
following:
1) Uses a single rsync command to push both the Chef configuration repo and 
the secrets (that are symlinked beneath the config repo, but again, not 
stored in Git).
2) Opens an SSH connection and runs chef-solo, passing the same JSON launch 
data as would have been used in client-server mode.

Again, this method satisfies the first security-related condition, but not 
the second.

Hope this helps,
- R. Newbie





Archive powered by MHonArc 2.6.16.

§