#env-var #secret #vault #hashi-corp #variables #environment #write

app credentials_to_env

从Hashicorp的Vault中提取机密,并写入环境或文件,然后执行另一个程序

8个版本

使用旧的Rust 2015

0.4.7 2018年9月12日
0.4.6 2017年8月15日
0.4.5 2017年7月13日
0.4.4 2016年11月30日
0.2.1 2016年3月23日

#654 in 认证

MIT/Apache

11KB
133

credentials-to-env: 在执行程序之前从Hashicorp的Vault或其他地方提取机密

Latest version License Build Status

静态二进制版本

您有一个假设它将在环境变量或磁盘上的文件中接收机密的现有程序吗?您想将此程序转换为使用Hashicorp的Vault吗?

第一次运行

cargo install credentials_to_env

然后创建一个名为 Secretfile 的文件,说明在Vault中可以找到个别机密的位置

# Set environment variables based on Vault secrets.
DOCKER_HUB_USER secret/docker_hub:user
DOCKER_HUB_PASSWORD secret/docker_hub:password
DOCKER_HUB_EMAIL secret/docker_hub:email

# Create SSL key files based on Vault secrets.
>$HOME/.docker/ca.pem secret/docker:ca_pem
>$HOME/.docker/cert.pem secret/docker:cert_pem
>$HOME/.docker/key.pem secret/docker:key_pem

最后,在您的程序调用前加上 credentials-to-env

credentials-to-env myprogram arg1 arg2

这将从Vault(或由credentials支持的任何其他后端)自动提取机密,并将它们写入指定的环境变量或文件。

您也可以通过传递自己的机密来覆盖 credentials-to-env,这在您在Docker容器内部调用 credentials-to-env 但想暂时覆盖从Vault获得的机密时很有用。

开发笔记

欢迎提交拉取请求!如果您不确定您的想法是否适合项目的愿景,请随时提交问题并询问我们。

要构建,您需要首先设置您的OpenSSL路径,Rust OpenSSL 项目所述。

要制作官方版本, 您需要是维护者,并且需要具有 cargo publish 权限。如果是这种情况,首先编辑 Cargo.toml 以增加版本号,然后使用以下内容重新生成 Cargo.lock

cargo build

使用以下格式的提交信息提交版本:

v<VERSION>: <SUMMARY>

<RELEASE NOTES>

然后运行

git tag v$VERSION
git push; git push --tags
cargo publish

这将使用Travis CI重新构建官方的二进制文件,并将新的crate版本上传到 crates.io

依赖关系

~17–27MB
~485K SLoC