我已准备好使用我的网络应用程序设置HashiCorp Vault,虽然HashiCorp提供的示例很有意义,但我还不清楚预期的生产设置应该是什么。
就我而言,我有:
我需要:
我可能会使用S3作为Vault的存储后端。
我遇到的问题类型有:
是否应该在我的所有EC2实例上运行保险库,并在127.0.0.1:8200收听?
或者我是否创建了一个实例(可能只有2个可用性),只运行Vault并根据需要将其他实例/服务连接到秘密访问?
如果我需要员工能够从本地机器访问机密,那该怎么办?他们是否在本地针对S3存储设置保险库,还是应该从步骤2访问远程服务器的REST API以访问其秘密?
要明确的是,任何正在运行保险柜的机器,如果重新启动,那么保险库需要再次启封,这似乎是涉及x个密钥的手动过程持有人
答案 0 :(得分:3)
Vault在客户端 - 服务器架构中运行,因此您应该在availability mode中运行一个专用的Vault服务器群集(通常3个适用于中小型安装)。
Vault服务器应该绑定到内部私有IP,而不是127.0.0.1,因为它们无法在您的VPC中访问。您肯定不想要绑定0.0.0.0,因为如果您的实例具有公共IP,则可以使Vault公开可访问。
您希望绑定到证书上公布的IP,无论是IP还是DNS名称。您只应在生产级基础架构中与Vault over TLS进行通信。
任何和所有请求都通过这些Vault服务器。如果其他用户需要与Vault通信,则应通过VPN或堡垒主机连接到VPC并发出针对它的请求。
重新启动运行Vault的计算机时,需要启用Vault。这就是您应该在HA模式下运行Vault的原因,因此另一台服务器可以接受请求。您可以设置监视和警报,以便在需要解密服务器时通知您(Vault返回特殊状态代码)。
您还可以阅读production hardening guide了解更多提示。
答案 1 :(得分:1)
特别针对第3点和第3点4:
他们会与群集中一台/多台计算机上运行的Vault API进行通信(如果您在HA模式下运行多台计算机,则任何时候只有一个节点处于活动状态)。您可以使用LDAP之类的可用身份验证后端为其配置某种身份验证。
是的,默认情况下,如果您的群集中的任何Vault节点重新启动或停止,您需要在其中启用配置,但是需要使用许多密钥;取决于你站起来时生成了多少个关键分片。