Tag: 秘密密钥

在.NET Core中跨Docker容器存储RSA密钥

我有一个在Ubuntu上运行Docker的ASP.NET Core web应用程序。 它使用RSA密钥进行各种身份validation任务。 我的Web应用程序由2个容器,一个授权服务器(使用密钥来创build&签名JWT令牌)和一个资源服务器(使用密钥来validationJWT令牌)组成。 我尝试使用.NET密钥容器来创build和存储RSA密钥对。 据我所知,密钥容器使用用户/机器级别authentication来存储和检索密钥。 如果我的授权和资源服务器运行在不同的容器中,他们可能无法访问密钥。 我甚至不确定这是Windows特有的特性,还是可以在Linux上运行。 是否有一个替代scheme与跨容器的docker工作? 也许在Linux上还支持.NET Core的东西?

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

微服务和云是一件事情。 每个人都在谈论和写作。 就我个人而言,我正在思考很多关于这个话题:如何从中受益? 什么是可能的挑战? 这怎么能加速日常的发展? 如何pipe理所有的东西? 几天以来困扰我的一个问题是“如何pipe理微服务/云环境中的秘密?”。 设想一家拥有150名软件工程师和各种产品的团队。 每个团队都在创build一个软件,每个服务都需要不同数量的秘密(API密钥,密码,SSH密钥等等)。 “老式”方式是以ini / yaml / txt格式创build一些configuration文件并从中读取。 12因素应用程序说:做每个环境variables。 环境variables可以在每台机器上设置,configuration文件也可以放在那里。 如果你有一堆机器,并且部署由几个系统pipe理员完成,这是有效的。 其中一条规则是:“不要在Git仓库中存储秘密”。 现在,新的世界进来了。永远的团队负责他们自己生产的应用程序。 他们应该由团队部署和运行。 所以我们公司正在转向集装箱和自助服务的方式(如Mesos和Marathon或Kubernetes)。 当然,Dockerfiles也可以设置env vars。 是的,您可以在构build过程中将您的configuration文件添加到Docker容器中。 但是,每个人都可以访问这些秘密(例如来自其他团队)。 没有人知道谁使用这个秘密,做一些危险的事情。 你也想要版本化你的Dockerfiles。 你想在Marathon上运行的应用程序也应该进行版本化(Git或其他)(并由REST API应用)。 那么在哪里存储和pipe理这个容器/应用程序的所有秘密? 因为像Swarm和Machine(Docker)这样的调度器框架,Mesos和Marathon(也可用于Docker)或者Kubernetes你不知道你的应用程序将在哪里运行。 这将安排在几台机器上。 而且大部分工具都没有authentication(默认情况下,这可以通过Nginx代理或其他东西来添加)。 pipe理秘密的一个想法是使用像Vault这样的工具。 但我从来没有在应用程序中看到“原生”的支持。 这同样适用于Blackbox 。 而且我不知道configurationpipe理如何解决这个问题。 我知道厨师支持encryption的数据包,但afaik不可能使用厨师来设置/构buildDocker容器。 你如何在一个多团队的环境中与几个工程师在微服务/容器/云环境中pipe理秘密?