[chef] Re: Re: Re: Re: sensitive data best practices


Chronological Thread 
  • From: "Nygard, Michael" < >
  • To: < >
  • Subject: [chef] Re: Re: Re: Re: sensitive data best practices
  • Date: Thu, 9 Sep 2010 07:44:02 -0500



On Sep 9, 2010, at 12:03 AM, "Adam Jacob" 
< >
 wrote:

> On Wed, Sep 8, 2010 at 1:05 PM, Jesse Nelson 
> < >
>  wrote:
>> A "secure" method for storing individual attributes would be slick.  
>> Server already has all clients pub keys. It could use to encrypt and 
>> clients can unwind on their end. Seems like that shouldn't be too hard to 
>> implement, but I am pretty ignorant about the api internals.
>
>> This solution would solve not storing cleartext in couch, and over the 
>> wire.  I suppose it would have to also replace the strings in the cookbook 
>> when stored.  Access to couch and client keys still fundamentally being an 
>> issue.
>
>> Personally haven't had to solve this problem yet, but i've been thinking 
>> about it a bit for some work on the horizon.
> 
> Not sending the cleartext over the wire is solved with SSL, I think.
> 
> If the Chef Server is doing the encryption for each client
> specifically, that implies a clear-text copy remains on the server.
> 
> If you really want it to be end-to-end secure, I think you probably
> have to have an external public/private key pair that gets
> individually distributed.  Something like Grendel
> http://github.com/wesabe/grendel is really where you would want to
> land.  Note they still have a key distribution issue - you pass your
> password to grendel to unlock your OpenPGP key, which then can be used
> to re-encrypt the data for other linked users.
> 
> I think any good answer to this question is going to involve lots of
> thinking about the exact use cases.  For example, I've built a
> password escrow service before specifically for passing the Sarbanes
> Oxley audit requirement that developers not have access to production
> passwords for financial systems.  It stored the actual secret on a
> secured machine, and granted access to production systems through
> indirection, and updated configuration templates or services on
> demand.  It worked for the use case, but I don't think it's general
> purpose applicable here.
> 
> Is the primary use case people storing passwords?

I have a similar use case to your financial system. SOX and PCI (at least, 
local interpretations) both require no dev access to production databases. At 
the same time, I want all the devs to see the chef-repo and be fluent with 
cookbooks. Therefore, I can't keep passwords in cookbooks.  If I keep them in 
data bags, I can look it up from the recipe, but I have to modify the recipes 
because data bag lookups are disjoint from attribute reads.

Even then, it means I can't let the devs log into the chef server. It would 
be nice if I could, so they could see all the non-sensitive attributes 
directly.

I have the exact same issue with encryption keys.

Cheers,
-Michael Nygard

> 
> Adam
> 
> -- 
> Opscode, Inc.
> Adam Jacob, CTO
> T: (206) 508-7449 E: 
> 



Archive powered by MHonArc 2.6.16.

§