#aws #aws-sdk #aws-parameter-store #aws-secrets-manager

aws-secrets

检索 AWS 机密并与 Secrets Manager 和 SSM 参数存储交互

2 个版本

0.1.1 2022 年 8 月 27 日
0.1.0 2022 年 8 月 26 日

#667 in #aws-sdk

MIT 许可证

27KB
153

aws-secrets

github crates.io docs.rs build status

检索 AWS 机密并与 Secrets Manager 以及 SSM 参数存储 交互。


这个库与 Cargo 一起工作,需要像下面的 Cargo.toml 这样的配置

[dependencies]
aws-secrets = { version = "0.1.1", features = ["all"] }
serde_json = "1"  # optional
tokio = { version = "1", features = ["full"] }

入门指南

向您的应用程序添加一些用法。以下是在代码中使用 aws-secrets 的示例。

注意:此示例需要启用 all 功能。

use aws_secrets::{config_from_env, SSMParamExt, SecretsExt};
use serde_json::{to_string, Value};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let shared_config = config_from_env().await;

    // Retrieve a secret from AWS Secrets Manager
    let secret_name = "my-secret";
    let value: Value = secret_name.get_secret(&shared_config).await?;
    let secret_string = to_string(&value)?;
    println!("[{secret_name}] Retrieved secret. value={secret_string}");

    // Retrieve a parameter from AWS SSM Parameter Store
    let param_name = "/my/secure/param";
    let value = param_name.get_secure_string(&shared_config).await?;
    println!("[{param_name}] Retrieved parameter. value={value:?}");

    Ok(())
}

示例

您可以在 GitHub 项目的 examples/ 文件夹中查看此库的示例用法。

依赖项和功能

此库仅使用最小必需的依赖项,以保持整体大小较小。它利用 AWS SDK for Rust 来调用 AWS API。

注意:必须单独启用任何所需功能,因为默认没有启用任何功能。

可用功能

  • all - 启用对 AWS Secrets Manager 和 SSM 参数存储的支持。
  • params - 启用对 AWS SSM 参数存储的支持。
  • sm - 启用对 AWS Secrets Manager 的支持。

启用功能

更新项目的 Cargo.toml 以包含要启用的任何可选功能

[dependencies]
aws-secrets = { version = "*", features = ["all"] }

贡献

欢迎贡献!提交一个 pull request 来修复错误,或者 提交一个问题 来讨论新功能或更改。

有关更多信息,请查看文档中的 贡献 部分。

许可证

本项目自豪地采用 MIT 许可证 (LICENSEhttp://opensource.org/licenses/MIT)。

aws-secrets 可以根据 MIT 许可证进行分发。贡献将接受相同的许可证。

作者

依赖项

~17–26MB
~534K SLoC