首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于文件存储的Hashicorp Vault?

用于文件存储的Hashicorp Vault?
EN

Stack Overflow用户
提问于 2016-01-17 03:14:59
回答 2查看 11.1K关注 0票数 7

我希望保存大量相当大的文档,从一百万到可能大几个数量级的文档。我知道Hashicorp的Vault非常适合存储密钥和较小的值。我喜欢得到“玻璃破碎”的功能和关键滚动功能。

有没有人对Vault的大秘密做过基准测试?我想我在金库里的秘密数量上不会有问题吧?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-21 14:08:11

性能将完全取决于您使用的存储后端。如果您正在使用细粒度的访问控制来存储机密,那么您可能不需要HA,所以文件存储后端就可以了,并且您可以使用SSD来获得良好的性能。

出于几个原因,我建议不要使用运输后端来加密和存储文件:

1.)如果您只使用KV,则从一个存储后端迁移到另一个存储后端(如文件存储到HA后端)相对容易/直接,当您使用vault的高级功能时,并不总是容易/不可能。(顺便说一句,后端之间的迁移是一个相对较新的功能,我在Vault 1.0++中注意到了它)

2.)您可以列出存储在KV存储中的所有机密,并且您可以进行版本控制。如果你使用运输工具,你必须自己编写代码。

3.)运输不是为此而设计的,错误的工作工具,KV是你正在寻找的。

如果您想在中存储大文件:

请勿单独使用Consul (否则最大限制为0.5mb )

应该可以从以下内容开始:

代码语言:javascript
复制
storage "file" { path = "C:/Vault" }

然后,当您需要HA时,过渡到S3/Azure Blob + Consul

代码语言:javascript
复制
ha_backend "consul" {...}
storage "s3" {...} 

(我建议你做一个PoC,以确认你可以过渡。)

注意:在实践中,我发现我永远不会存储大于0.375mb的秘密,所以Consul本身就很好。这是一个更简单的设置,您可以进行时间点实时快照。此外,如果您发现将来需要空间,您可以只迁移存储后端。

出于以下不便/开销的原因,您还应该避免大文件大小:

Vault是使用以下语法的键值存储:

代码语言:javascript
复制
vault kv put secret/KEY key=value
vault kv put secret/dev config.json=base64'dstring

如果要存储二进制文件或多行字符串,则需要对其执行base64操作,以便将其转换为单行字符串,并将其存储为值。如果你最终得到了一个300mb的文件,你必须生成一个400mb的base64编码字符串。(因为base64编码会持续增加33%的开销)

如果你真的想以一种可伸缩的方式来做这件事,那就是

我认为理想的方法是将对称加密/解密密钥+加密文件位置存储在Vault中。使用Consul作为您的Vault后端。使用S3作为您的文件存储。

如果我要这么做,我会在Kubernetes + 2-3 Vault服务器上托管Consul +Minio/Rook/Ceph(自托管S3),或者在Kubernetes +2-3 vault服务器上托管,或者为了达到最高的安全性,在支持英特尔SGX的机器上安装Vault SCONE Enclaves (加密ram),以防止幽灵/熔毁/0天根访问内存转储漏洞。并将对称加密的文件存储在您的DIY中,解密密钥+文件位置引用存储在S3中,然后一些中间件将其提取出来。(我只建议使用自托管S3,这样您就可以将多云+ 100%基础架构作为代码,但也可以根据您的需求混合和匹配部分设计。)

票数 4
EN

Stack Overflow用户

发布于 2016-09-26 20:04:59

您可以使用Transit backend加密文件并将其存储在外部,而不是使用Vault来实际存储文件。

这样,您就可以将文件存储在通常存储的任何位置,同时还可以访问Vault的秘密管理功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34831029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档