gpt4 book ai didi

file-management - Hashicorp Vault 用于文件存储?

转载 作者:行者123 更新时间:2023-12-04 07:10:18 25 4
gpt4 key购买 nike

我希望保存大量相当大的文档,从 1M 到可能大几个数量级。我知道 Hashicorp 的 Vault 非常适合 key 和较小的值。我很想从中获得“玻璃 splinter ”功能和关键滚动功能。

有没有人对具有大 secret 的 Vault 进行过任何基准测试?我想我不会在保管库中的 secret 数量上遇到麻烦吗?

最佳答案

性能将完全取决于您使用的存储后端。如果您对具有细粒度访问控制的 secret 进行 repo 之类的操作,那么您可能不需要 HA,因此文件存储后端会很好,并且您可以使用 SSD 来获得良好的性能。

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

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

2.) 您可以列出存储在 KV 存储中的所有 secret ,并且您有版本控制。如果您使用 Transit,则必须自己编写代码。

3.) Transit 不是为此而设计的,错误的工作工具,KV 正是您要寻找的。

如果您想在 Vault 中存储大文件:
不要单独使用 Consul(否则您的最大大小将被限制为 0.5mb)
应该可以从以下开始:

storage "file" { path = "C:/Vault" }

然后在需要 HA 时过渡到 S3/Azure Blob + Consul
ha_backend "consul" {...}
storage "s3" {...}

(我建议您进行 PoC 以确认您可以过渡。)

笔记:
在实践中,我发现我从不存储大于 0.375mb 的 secret ,因此 Consul 本身没问题。这是一个更简单的设置,您可以制作时间点实时快照。另外,如果您发现将来需要空间,您可以迁移您的存储后端。

此外,由于以下不便/开销的原因,您仍应避免使用大文件:
Vault 是使用以下语法的键值存储:
vault kv put secret/KEY key=value
vault kv put secret/dev config.json=base64'dstring

如果要存储二进制文件或多行字符串,则需要对它进行 base64 将其转换为 1 行字符串,并将其存储为值。那么如果你最终得到一个 300mb 的文件,你就必须制作一个 400mb 的 base64 编码字符串。 (因为 base64 编码增加了 33% 的一致开销)

如果您真的想以可扩展的方式执行此操作:
我认为这样做的理想方法是在 Vault 中存储对称加密/解密 key + 加密文件位置。
使用 Consul 作为您的 Vault 后端。
使用 S3 作为您的文件存储。

如果我打算这样做,我会在 Kubernetes 上托管 Consul + Minio/Rook/Ceph(自托管 S3)+ 2-3 台保管库服务器,或者在 Kubernetes 上,或者在具有 Vault SCONE Secure 的 Intel SGX 启用的盒子上实现最高安全性飞地(加密 ram)以防止 Spectre/Meltdown/0 天 root 访问内存转储漏洞利用。并将对称加密的文件存储在您的DIY S3上,并将解密 key +文件位置引用存储在Vault中,然后一些中间件将其抽象出来。 (我只建议自托管 S3,这样您就可以成为多云 + 100% 基础设施即代码,但是是的,可以根据您的要求混合和匹配部分设计。)

关于file-management - Hashicorp Vault 用于文件存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34831029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com