28 个版本 (10 个重大更改)
0.11.2 | 2024年5月4日 |
---|---|
0.10.0 | 2024年3月8日 |
0.9.1 | 2023年10月2日 |
0.7.0 | 2023年6月13日 |
0.4.0 | 2023年3月16日 |
#150 在 身份验证
230KB
2K SLoC
Lade
Lade (/leɪd/) 是一个工具,允许您将您首选保险库中的机密自动加载到环境变量或文件中。它限制机密在需要机密的命令存在的时间内的暴露。
Lade 是 Metatype 生态系统 的一部分。请考虑查看此组件如何与整个生态系统集成,并浏览 文档 了解更多示例。
入门
您可以从 GitHub 上的 发行页面 下载二进制可执行文件,将其设置为可执行文件并将其添加到您的 $PATH
中,或者使用以下方法自动化这些步骤。
curl -fsSL https://raw.githubusercontent.com/zifeo/lade/main/installer.sh | bash
# via cargo
cargo install lade --locked
cargo install --git https://github.com/zifeo/lade --locked
# upgrade
lade upgrade
# install shell hooks (only required once)
lade install
兼容的保险库: Infisical,1Password CLI,Doppler,Vault
用法
Lade 将通过由 lade install
安装的命令钩子运行您在 shell 中运行的任何命令之前和之后。在每次运行中,它将在当前目录及其父目录中递归查找 lade.yml
文件。然后,它将使用正则表达式匹配您正在运行的命令的任何机密,并在运行期间将它们加载到环境变量或文件中。
cd examples/terraform
terraform apply
# example = "hello world"
手动注入
如果您希望自行决定何时加载密钥,可以使用 inject
命令手动注入。请注意,当运行脚本或非交互式shell会话时,无法保证shell钩子会被触发。在这种情况下,inject
命令是加载密钥的唯一方法。
cd examples/terraform
lade inject terraform apply
以文件形式输出
默认情况下,Lade会将密钥加载到环境变量中。您可以通过将 .
设置为所需的文件名来更改此设置。内容将根据扩展名创建。目前,仅支持YAML和JSON。
command regex:
.: file.yml
...
加载器
大多数vault加载器使用其本地的CLI进行操作。这意味着您必须在本地安装它们,并且您的登录/凭据必须是有效的。Lade可能会通过直接集成相应的API进行演化,但这留作未来工作。
Infisical加载器
command regex:
EXPORTED_ENV_VAR: infisical://DOMAIN/PROJECT_ID/ENV_NAME/SECRET_NAME
频繁域名:app.infisical.com
。
注意:/api
会自动添加到DOMAIN。此源目前仅支持单个域名(您不能登录多个域名)。
1Password加载器
command regex:
EXPORTED_ENV_VAR: op://DOMAIN/VAULT_NAME/SECRET_NAME/FIELD_NAME
频繁域名:my.1password.eu
,my.1password.com
或 my.1password.ca
。
Doppler加载器
command regex:
EXPORTED_ENV_VAR: doppler://DOMAIN/PROJECT_NAME/ENV_NAME/SECRET_NAME
频繁域名:api.doppler.com
。
Vault加载器
command regex:
EXPORTED_ENV_VAR: vault://DOMAIN/MOUNT/KEY/FIELD
Passbolt加载器
command regex:
EXPORTED_ENV_VAR: passbolt://DOMAIN/RESOURCE_ID/FIELD
文件加载器
支持INI、JSON、YAML和TOML文件。
command regex:
EXPORTED_ENV_VAR: file://PATH?query=.fields[0].field
PATH
可以相对于lade目录,以 ~
/$HOME
或绝对路径(不建议与他人共享项目,因为他们的路径可能不同)。
原始加载器
command regex:
EXPORTED_ENV_VAR: "value"
使用 !
前缀转义值强制使用原始加载器,双 !!
转义本身。
开发
eval "$(lade off)"
eval "$(cargo run -- on)"
echo a $A1 $A2 $B1 $B2 $B3 $C1 $C2 $C3
cargo run -- -vvv set echo a
eval "$(cargo run -- off)"
eval "$(lade on)"
依赖项
~26–65MB
~1M SLoC