4 个版本
0.3.5 | 2020 年 7 月 11 日 |
---|---|
0.3.4 | 2020 年 7 月 8 日 |
0.3.2 | 2020 年 7 月 1 日 |
0.3.0 | 2020 年 6 月 30 日 |
#20 in #hashi-corp
用于 encrypt-rs
145KB
2.5K SLoC
HashivaultKeeper - Hashicorp Vault 的 SecretKeeper 实现
此管理器封装了 hashicorp vault 'transit' 引擎的 API,用于加密和解密。此 API 完全异步,
设置
如果您还没有可用的 hashicorp vault,请查看示例目录(examples/README.md),其中包含在 docker 容器中设置 hashicorp vault 的详细说明。
示例/脚本文件夹还包括一些脚本,可以使用 'vault' 命令行程序(Linux 发行版的 'vault' 或 'vault-bin' 包的一部分)创建加密密钥。HashivaultKeeper 还实现了在 vault 服务器上创建新加密密钥的 API 方法。
使用此管理器
SecretKeeper URI 的形式为
hashivault://MYKEY
(使用默认主机:端口 == localhost:8200)hashivault://主机:端口/MYKEY
- 此形式使用 http 进行本地主机,https 用于所有其他主机
hashivault:https://主机:端口/MYKEY
- 此形式仅在推断出的 http/https 方案不正确时才需要
如果 URI 中未设置主机和端口,则检查 VAULT_ADDR。VAULT_ADDR 可以定义如下形式 'https://127.0.0.1:8200/'。如果 VAULT_ADDR 未设置,则使用 'http://127.0.0.1:8200'。
用于访问 vault 服务器的 REST API URL 的形式为
http(s)://host:port/v1/transit/(encrypt|decrypt|keys)/<KEY_NAME>
您可以使用 examples/encrypt-rs 命令行程序进行测试。确保设置了环境变量 VAULT_TOKEN
source secret.env
然后,要将 FILE
加密到 FILE.ENC
,请使用
encrypt enc -o FILE.ENC -k hashivault://MYKEY FILE
解密时,请使用
encrypt dec -o FILE.DUP -k hashivault://MYKEY FILE.ENC
默认参数下,此操作将使用新生成的 256 位密钥,使用 LZ4XChaCha20-Poly1305 压缩密码加密文件,将密钥加密到 vault 上的 MYKEY,并将加密密钥存储在 FILE.ENC 的头部。
依赖项
~10–14MB
~281K SLoC