【问题标题】:Is it possible to have an local instance of Azure Key Vault?是否可以拥有 Azure Key Vault 的本地实例?
【发布时间】:2021-10-11 02:17:33
【问题描述】:

我目前正在使用 C# 开发一个集成 Azure Key Vault 的解决方案。

如果互联网出现故障 - 我在柏林工作,所以并非完全不可能 - 或者如果我想在调试解决方案时排除网络连接问题,有没有办法可以设置本地实例?

【问题讨论】:

  • 密钥保管库保存的是什么,例如与数据库、缓存的连接详细信息?
  • @Manti_Core,假设它可能是 Vault 可以存储的任何东西。但是为了我的迫切需要,我将使用 RSA 私钥将文本文件存储为“秘密”(或者可能是“证书”,但我发现以这种方式保存它们是有问题的)。
  • 您可以在本地计算机上安装证书并托管一个实例,为您的项目提供物理路径并绑定到本地安装的证书,甚至运行 kestrel 有一些 cli 命令可以使用本地证书运行,我不认为这样做可以暂时中断互联网。
  • 不需要新的逻辑,但您需要绑定证书检查此out,如果您无法从 azure 获取证书文件的副本,则使用默认开发证书使用 CLI 强制执行安全 http
  • this 会帮助你。

标签: c# azure localhost local azure-keyvault


【解决方案1】:

不,原因在于名称:Azure Key Vault。

但您可以设置代码以在开发模式下运行时通过回退机制获取凭据,例如通过user secrets

【讨论】:

  • 有没有办法在“用户机密”中存储文件、证书等?
  • UserSecrets 是一个 Json 文档,所以是的,如果你正确编码它,你可以在那里存储二进制数据。如果 Azure 密钥保管库不可用,您还可以创建一些本地配置提供程序,以便在本地加载证书。您还可以配置使用环境(开发/生产)来使用不同的配置源。
  • 是否可以使用不同的配置源进行配置,使用最少或没有分支代码,以便生产实例的行为与开发实例的行为没有本质区别?这样的配置会是什么样子?
【解决方案2】:

我遇到过/遇到过类似问题,需要 Azure Key Vault 的本地存根。就像你一样,我没有找到,所以决定自己动手。它正在进行中,但密钥和秘密支持已经处于 MVP 状态。

只要启动 Docker 容器对您来说不是问题,就值得一试。

如果您觉得有用,请查看并保存以供日后使用:https://github.com/nagyesta/lowkey-vault

【讨论】:

    【解决方案3】:

    正如其他人所说,没有本地独立软件 Key Vault,但如果您真的有兴趣实现这一点,您可以选择:

    1. Azure Key Vault 是您可以在本地托管的本地 Azure Stack Hub 的一部分。

    2. 使用前端 REST Web 服务滚动您自己的加密数据库。

    我不推荐这两个。

    【讨论】:

    • 我们是否需要托管整个堆栈集线器来托管本地密钥保管库?我们能否将它放在我们的开发机器上(可能在虚拟机中)而不让它停止运行?你会推荐什么?
    • AFAIK 无法将 Key Vault 与堆栈隔离。有可以在单个节点上运行的 ASDK (docs.microsoft.com/en-us/azure-stack/asdk/…),但它建议使用 256Gb RAM。这不是一个简单的解决方案。
    • 256Gb 内存!?!哇!哎哟!
    猜你喜欢
    • 2016-04-24
    • 2019-01-27
    • 2021-06-08
    • 2021-10-10
    • 2020-05-04
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 2020-10-12
    相关资源
    最近更新 更多