#vault #kubernetes #tokio #hashi-corp

coult

HashiCorp Vault 密钥检索助手,使用 hyper 和 serde,并自动解析

10 个版本

0.2.5 2022年8月3日
0.2.4 2022年8月3日
0.1.4 2021年12月20日
0.1.1 2021年10月18日

#550 in 身份验证

MIT/Apache

14KB
263

Coult

Rust Vault 密钥检索器

示例

use coult::{Config, Vault};
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct Secret {
    password: String,
}

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt::init();
    let config = Config::new(
    "http".to_string(),                           # Vault Http Protocol http/https
    "127.0.0.1".to_string(),                      # Vault Host
     8200,                                        # Port
    "config/path".to_string(),                    # Secret Path
    "vault-plaintext-root-tokenzqwe".to_string(), # Vault Token
    );
    let vault = Vault::new(config).await.unwrap();
    let data = vault.get_secret::<Secret>().await.unwrap();
    println!("{:?}", data)
}


lib.rs:

Coult 是一个从 HashiCorp Vault 获取数据的 crate

用法

Coult 使用 hyper 客户端而不是 reqwest,以创建更简单、更轻量级的 crate,它将帮助您向 Vault 发送 GET 请求以检索密钥。此 crate 将帮助您使用 serde 自动解析,并确保您的结构体具有 Deserialize derive。

示例

use coult::{Config, Vault};
use serde::Deserialize;

#[derive(Debug, Deserialize)]
struct Secret {
   password: String,
}

#[tokio::main]
async fn main() {
  tracing_subscriber::fmt::init();
  let vault = Vault::new().build().await.unwrap();
  let data = vault.get_secret::<Secret>().await.unwrap(); // for v1, get_secret_v2
  println!("{:?}", data)
}

依赖项

~6–13MB
~150K SLoC