小编And*_*ndy的帖子

如何管理微服务/容器/云环境中的秘密?

微服务和云是一件事.每个人都在谈论和写作.就我个人而言,我正在考虑这个主题:如何利用它来获益?有哪些可能的挑战?这怎么能加速日常发展?以及如何管理所有事情?几天之后困扰我的一个问题是"如何管理微服务/云环境中的秘密?".

想象一家拥有150名软件工程师和各种团队的公司.每个团队都在创建一个软件,每个服务都需要各种秘密(API密钥,密码,SSH密钥等等)."旧时尚"方式是以ini/yaml/txt格式创建一些配置文件并从中读取.12个因子应用程序说:按照env vars进行.

可以为每台机器设置Env变量,也可以将配置文件放在那里.如果你手持一台机器并且部署由一些系统管理员完成,这就有效.一般规则说:"不要在Git回购中存储秘密."

现在,新的世界进入了.永远的团队负责他们自己生产的应用程序.它们应该由团队部署和运行.所以我们公司正在转向集装箱和自助服务方式(例如Mesos和Marathon或Kubernetes).

当然,Dockerfiles也可以设置env变量.是的,您可以在构建期间将配置文件添加到Docker容器中.但有了这个,每个人都可以访问秘密(例如来自其他团队).没有人知道谁使用这个秘密并做了一些危险的事情.

您还希望对Dockerfiles进行版本化.您希望在Marathon上运行的应用程序也应该进行版本化(Git或其他)(并由REST API应用).那么在哪里存储和管理这个容器/应用程序的所有秘密?因为使用Swarm和Machine(对于Docker),Mesos和Marathon(也可用于Docker)或Kubernetes等调度程序框架,您不知道应用程序将在何处运行.这将安排在几台机器上.并且大多数此类工具都没有身份验证(默认情况下,当然可以通过Nginx代理或其他方式添加).

管理机密的一个想法是使用像Vault这样的工具.但我从来没有在应用程序中看到"原生"支持.这同样适用于黑盒.我不知道配置管理如何解决这个问题.我知道Chef支持加密的数据库,但是不能使用Chef来设置/构建Docker容器.

如何在微服务/容器/云环境中与多名工程师一起管理多个团队环境中的秘密?

git secret-key docker microservices

16
推荐指数
1
解决办法
2957
查看次数

标签 统计

docker ×1

git ×1

microservices ×1

secret-key ×1