8个版本 (3个稳定版)
1.0.2 | 2022年1月5日 |
---|---|
1.0.0 | 2022年1月4日 |
0.4.1 | 2021年10月11日 |
0.4.0 | 2021年5月14日 |
0.1.0 | 2021年3月14日 |
#629 在 身份验证
11KB
187 行
Vault Credentials
Rust库,从Vault中获取秘密并将它们作为环境变量加载。受Spring Cloud Vault启发。
入门
我们假设您想要从您本地的 Vault服务器检索一些秘密。
这是位于 secret/hello
的json秘密(从Vault的角度来看,可以通过使用Vault UI或Vault CLI获取)
{
"my-key": "my-value",
"github.com": {
"api-key": "123456",
"base-url": "https://127.0.0.1:8080"
}
}
在您的程序中,您必须提供连接到Vault服务器并检索令牌所需的环境变量。您可以使用.dotenv crate并将变量放入.env文件中。
VAULT_ADDR=http://127.0.0.1:8200
VAULT_PATH=hello
VAULT_TYPE=approle
VAULT_ROLE_ID=9bf0581f-[...]-533ba207ec80
VAULT_SECRET_ID=55473ff2-[...]-0ab9ae6e499b
要在程序中使用vault_credentials crate,导入它并调用initialize
方法。
use dotenv::dotenv;
#[tokio::main]
async fn main() {
dotenv().ok();
vault_credentials::initialize().await;
println!("{}", std::env::var("github.com.api-key").unwrap());
// Output: 123456
}
身份验证类型
您可以使用其他类型的身份验证,方法是在VAULT_TYPE
中使用。 (默认设置为token
)
Vault类型 | 必需的环境变量 |
---|---|
token |
VAULT_TOKEN |
approle |
VAULT_ROLE_ID ,VAULT_SECRET_ID |
kubernetes |
VAULT_K8S_AUTH_PATH ,VAULT_ROLE_NAME |
userpass ,ldap |
VAULT_USERNAME , VAULT_PASSWORD |
命名空间
如果您使用命名空间,则可以使用环境变量VAULT_NAMESPACE
定义它。这将向请求添加一个标题。
依赖项
~5–18MB
~269K SLoC