Hashicorp Vault - 生产中的设置/体系结构

Hashicorp Vault - 生产中的设置/体系结构

问题描述:

我正准备用我的Web应用程序设置Hashicorp Vault,虽然Hashicorp提供的示例很有意义,但我对于预期的生产设置应该是什么还不清楚。Hashicorp Vault - 生产中的设置/体系结构

在我的情况,我有:

  • 服务我的web应用程序服务詹金斯持续部署

  • 一对夫妇的EC2实例AWS EC2实例的极少数,我需要:

    • 我的配置软件(Ansible)和Jenkins能够在dep期间读取机密loyment
    • 允许公司的员工根据需要阅读秘密,并可能为某些类型的访问生成临时的秘密。

    我可能会使用S3作为Vault的存储后端。

    的问题,我的类型是:

    1. 应该跳马是我所有的EC2实例运行,并在127.0.0.1:8200听吗?

    2. 或者我是否创建了一个只运行保险柜并将其他实例/服务连接到秘密访问需要的实例(可能为2)?

    3. 如果我需要员工能够从他们的本地机器访问机密,这是如何工作的?他们是否在本地针对S3存储设置了保险库,还是应该从步骤2访问远程服务器的REST API以访问其秘密?

    4. 而且要清楚,任何正在运行Vault的机器,如果它重新启动,那么Vault需要再次解封,这似乎是一个涉及x个密钥持有者的手动过程?

  • +0

    https://s3.amazonaws.com/quickstart-reference/hashicorp/vault/latest/doc/hashicorp-vault-on-the-aws-cloud.pdf – sethvargo

    +0

    @sethvargo谢谢,但这并不完全回答我的问题,特别是第3和第4点 – djt

    保管箱运行在客户端 - 服务器体系结构,因此应该有Vault服务器的专用群集(通常3是适用于中小型安装)在availability mode运行。

    Vault服务器应该可能绑定到内部私有IP而不是127.0.0.1,因为它们在您的VPC中不可访问。你绝对要做而不是想绑定0.0.0.0,因为如果你的实例有一个公有IP,这可能会让Vault公开访问。

    您需要绑定到在证书上发布的IP,无论是IP还是DNS名称。您只应在生产级基础架构中通过TLS与Vault进行通信。

    任何请求都会经过这些Vault服务器。如果其他用户需要与Vault通信,则他们应通过VPN或堡垒主机连接到VPC并针对该VPC发出请求。

    当运行Vault的计算机重新启动时,Vault确实需要解除密封。这就是您应该在HA模式下运行Vault的原因,因此另一台服务器可以接受请求。您可以设置监控和警报以通知您服务器何时需要解除密封(Vault返回特殊状态码)。

    您还可以阅读production hardening guide获取更多提示。