3 个版本
使用旧Rust 2015
0.3.2 | 2018年8月28日 |
---|---|
0.3.1 | 2018年6月18日 |
0.3.0 | 2018年5月9日 |
#634 in 身份验证
53KB
967 行
vault-client
vault-client 是用 Rust 编写的 HashiCorp Vault 的本地客户端库。它是 hashicorp_vault 的替代品,后者是一个功能较少但覆盖更广 Vault API 的客户端。
它使用自动生成的客户端库来与 Vault API 通信。然后 vault-client 与 Vault 服务器通信,以保持其自己的身份验证最新,并保持之前发出的任何密钥的最新状态。所有发出的密钥都被缓存,这样当 Vault 服务器宕机时,vault-client 可以继续提供有限的服务。
目前,支持的唯一后端是 令牌身份验证后端 和 PKI 密钥后端。然而,vault-client 被设计成易于扩展 - 非常欢迎对其他后端的贡献。
开发
vault-api
此 Crate 依赖 vault-api,它为 Vault API 提供了一个薄的自动生成客户端。
要支持 Vault API 的新部分,更新 swagger 规范 以包含新端点。然后,运行 make
,检查结果。
文档
Rustfmt
此 Crate 的 CI 管道将尝试执行 rustfmt,并在发现任何差异时失败。为了避免这种情况,请确保在提交前运行 ./run-in-docker.sh make rustfmt
。 (在 docker 中运行的原因是确保您使用与 CI 管道相同的 rustfmt
版本。)
运行本地 Vault 服务器。
要运行本地 Vault 服务器,请按照以下说明操作
-
- 您可以使用预先生成的文件,位于
test/certificates
。使用方法:运行echo 000a > certificates/serialfile
,然后运行touch certificates/certindex
。接着运行sudo update-ca-trust enable
,将certificates/root.cer
复制到/etc/pki/ca-trust/source/anchors/ca.crt
,然后运行sudo update-ca-trust extract
。
- 您可以使用预先生成的文件,位于
-
运行 vault:
vault server -config=vault.config
,查看本目录下的vault.config
文件以获取示例配置。 -
现在我们将进一步配置 Vault。设置一些环境变量,允许您将 Vault CLI 作为 Vault 服务器的客户端使用。这可以是在 Vault 服务器 VM 上运行,也可以在其他地方运行。
export VAULT_ADDR="https://127.0.0.1:8200" export VAULT_CACERT="certificates/root.cer"
请注意,使用的地址必须与 Vault 证书的通用名称(
CN
)相匹配。这可能意味着您不能根据证书与 Vault 服务器通过127.0.0.1
进行通信。 -
运行
vault init
export VAULT_TOKEN="<initial root token, or a new one that you created from that>"
-
然后:运行
vault unseal
三次(每个密钥一次) -
安装 PKI 后端。请参阅文档或遵循以下说明。
vault mount pki vault mount-tune -max-lease-ttl=87600h pki vault write pki/root/generate/internal common_name=<this server's hostname/IP> ttl=87600h vault write pki/config/urls issuing_certificates="https://<this server's IP>:8200/v1/pki/ca" crl_distribution_points="https://<this server's IP>:8200/v1/pki/crl" vault write pki/roles/metaswitch allow_any_name="true" max_ttl="720h"
- 现在,您可以使用以下命令手动写入证书:
vault write pki/issue/metaswitch common_name=blah.example.com
- 现在,您可以使用以下命令手动写入证书:
依赖项
~20MB
~403K SLoC