3 ms·
> How do you provide your secrets to your apps? Using an external service? That would still require another set of credentials. Using environment variables? A f
by omegalulw 5y ago
> How do you provide your secrets to your apps? Using an external service? That would still require another set of credentials. Using environment variables? A file only the user running the app has access too? Another way?
A credential/key storage service, either on device/server or as a separate device, with IAM to control whether the user executing that process can use that secret or not. The user in this case for prod services should be a prod (non-human) user.
When all your services are like this, no person should have direct access. You generate key/secrets depending which services you want to allow to communicate with each other and the keys live in the key store. For secrets for external services, e.g. API keys, someone would have to enter them once, yes.
You also should try not to rely on secrets, rather invest in proper authentication/authorization logic.
- Macha 5y agoThere's a chicken and egg problem here. If you move your secrets to a secret management service, how do you provide the credentials to unlock to that? Whether it's on disk, in the environment or on an internal endpoint like IAM host roles there's ways for this to be exposed in the event of bugs or security vulnerabilities in your application
- SomeCallMeTim 5y ago> in the event of bugs or security vulnerabilities in your application The article talks about keys being published as part of the web page configuration. That's far worse than "they could hack a server and gain its credentials!"