We have started work on exposing Hashicorp Vault secrets via FUSE and Docker volumes. The expectation is your containers will just mount secrets via a mount like /secret in the container. The project is brand new and we'd love to hear your feedback: https://github.com/asteris-llc/vaultfs
Ask HN: In a microservice architecture, how do you handle managing secrets?
41–50 of 60 posts
Re: Ask HN: In a microservice architecture, how do you handle managing secrets?
#42Re: Ask HN: In a microservice architecture, how do you handle managing secrets?
#43Earlier quoted context omitted.
Have you had a look at the new ASP.NET Configuration classes? [1] I hate having to manage web.config but I get your point about keeping attackers at bay (and not providing pivot points). [1]: http://docs.asp.net/en/latest/fundamentals/configuration.htm...
Thanks - it's clear MSFT is working hard to get to a place where secret management is a first class part of the dev process and we're attempting to integrate with the classes you mention but as I understand it they only work with ASP.NET 5 so you can't use them in console app based test harnesses or Windows services or etc. That means we end up needing to have a bunch of provider mechanisms, all essentially the same…
Re: Ask HN: In a microservice architecture, how do you handle managing secrets?
#44Re: Ask HN: In a microservice architecture, how do you handle managing secrets?
#45It also depends on how secret it needs to be. For most of our secrets (those used for configuration) we use Consul.
I think this can be sane when you don't have multiple privilege levels anywhere in the data center you're deploying in. It's less sane if you have less- and more- privileged machines anywhere in the environment, or less- and more- privileged applications. You're putting a lot of faith in a very complex and not- well- tested codebase if you rely on Consul ACLs to protect secrets.
Of the tools listed in the OP, I feel really good about Square Keywhiz; I'm still rolling it out in my first environment, so I can't say for sure, but I appreciate the level of effort that's gone into only doing secret storage and making sure it is exhaustively tested to spec.
Re: Ask HN: In a microservice architecture, how do you handle managing secrets?
#46Earlier quoted context omitted.
Yes, but is there a succinct howto on this?
The short version is: 1) Create an S3 bucket. Remove all permissions from it 2) Create an IAM role - give it explicit read permissions to just that bucket (there's a HOWTO at the bottom of this article: http://mikeferrier.com/2011/10/27/granting-access-to-a-singl... ). When you start an ec2 instance, you can give it one (and only one) IAM instance role. 3) Put your secrets or configs in a file on that bucket. For exa…
(I guess "RAM" and "disk" are virtual entities, but hopefully the spirit of the question still applies.)
Re: Ask HN: In a microservice architecture, how do you handle managing secrets?
#47I'm sure each product listed conforms to one from a small set of design patterns. Has any credible analysis of these designs been published? Are competing offerings likely to evolve toward a stable converged solution? Or is there something in this problem that remains fundamentally unsolved?
I appreciate it's turtles all the way down, but I'm wondering if anyone has proven the merits of some approaches over others, or components within the approaches at least.
Re: Ask HN: In a microservice architecture, how do you handle managing secrets?
#48Earlier quoted context omitted.
Have you had a look at the new ASP.NET Configuration classes? [1] I hate having to manage web.config but I get your point about keeping attackers at bay (and not providing pivot points). [1]: http://docs.asp.net/en/latest/fundamentals/configuration.htm...
Thanks - it's clear MSFT is working hard to get to a place where secret management is a first class part of the dev process and we're attempting to integrate with the classes you mention but as I understand it they only work with ASP.NET 5 so you can't use them in console app based test harnesses or Windows services or etc. That means we end up needing to have a bunch of provider mechanisms, all essentially the same…
Re: Ask HN: In a microservice architecture, how do you handle managing secrets?
#49Earlier quoted context omitted.
The short version is: 1) Create an S3 bucket. Remove all permissions from it 2) Create an IAM role - give it explicit read permissions to just that bucket (there's a HOWTO at the bottom of this article: http://mikeferrier.com/2011/10/27/granting-access-to-a-singl... ). When you start an ec2 instance, you can give it one (and only one) IAM instance role. 3) Put your secrets or configs in a file on that bucket. For exa…
I'm somewhat naive regarding S3. If data is in RAM, can you prevent it being swapped to disk and read by an unauthorised user? (I guess "RAM" and "disk" are virtual entities, but hopefully the spirit of the question still applies.)
Really, you need to just make sure that the instance is secure. The point of this whole setup is not to make secrets unobtainable if someone compromises your app server; it is to prevent you from checking in production database passwords and secrets to your code repository.