首页 > 解决方案 > 为现有的非容器化 Windows 应用程序使用 Vault 入门

问题描述

我们有一堆目前处理秘密的 Windows 服务器应用程序,如下所示;我们的应用程序使用 C#。

我们正在考虑实施 Hashicorp Vault。只需将加密存储解密替换为将密钥存储在 KV 引擎中的 Vault 中,然后在我们的应用程序中获取它,这似乎很容易——这完全消除了该证书。由于我们在本地,我需要弄清楚我们的身份验证方法。

我们有不同的应用程序在不同的机器上运行,并且它有点动态(不像自动缩放场景那样多,但不是永久的 - 所以我们不能一次将服务器分配给角色并依赖于 Kerberos 身份验证)。

我不确定如何让 AppRole 在我们的场景中工作。我们没有“受信任的平台”或“受信任的实体”示例,没有 Nomad、Chef、Terraform 等。我们在域中有 Windows 机器,并且我们有一个可以查询的本土编排器“这个机器名称运行这些应用程序”,所以也许可以在那里做一些事情?

我是否在“编写您自己的身份验证插件”领域,与我们本土的协调器交谈?

编辑 - Reddit 上的某个人建议,如果我们的应用程序都与它们运行的​​ Windows 域帐户是一对一的,那么这是一个简单的解决方案,因为这样我们就可以使用遏制身份验证。这不是我们目前的架构方式,但我们必须以某种方式解决这个问题,这可能会做得很好。

第二次编辑 - 用“应用程序”替换“服务”,因为我们的大多数服务实际上并没有作为 Windows 服务运行,只是进程。启动器是 Windows 服务,但它启动的各个进程不是。

标签: hashicorp-vaultvault

解决方案


组托管服务帐户怎么样? https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview

本质上,您创建了一个“可信平台”(针对您的密钥保管库服务)。当您想要检索机密时,您的服务仍然可以拥有自己的身份,但委托给 gMSA。


推荐阅读