#secret #service #key #secret-management #encryption #chamber #self-hostable

bin+lib chamber-cli

Chamber 的 CLI,自托管 SecretOps 服务

2 个不稳定版本

0.2.0 2023 年 12 月 30 日
0.1.0 2023 年 12 月 25 日

#1725 in 密码学

MIT 许可证

65KB
1.5K SLoC

chamber:一个自托管的 SecretOps 服务。

你有 NIH 综合症吗?我也是,这就是我制作这个网络服务的原因,这样我就可以避免使用 Hashicorp Vault 的复杂性。

用法

开始使用 Chamber 的最简单方法是使用 CLI。您需要使用以下方式安装它:

cargo install chamber-cli

然后,您可以使用 chamber website set [VALUE] 来设置您的 Chamber 实例的 URL。

最初,当您加载网络服务时,会自动为您生成一个根密钥,您可以在日志中找到它。您需要使用此密钥使用 chamber unseal [VALUE] 来解封网络服务。

完成此操作后,您可以使用 chamber keygen 生成一个 chamber.bin 文件,并使用 chamber upload 将新的密钥文件上传到网络服务以重置您的密封密钥(以及加密密钥)!

部署到 Shuttle

要将此作为 Shuttle 服务部署,请运行以下命令:

cargo shuttle init --from joshua-mo-143/chamber --subfolder chamber-server

您可能希望使用 chamber keygen 生成新的密钥文件并将其包含在项目根目录中。这将允许您在部署之间持久化您的密钥文件。计划支持 shuttle-persist 以简化密钥文件的持久化。

Dockerfile 部署

在 Railway 上部署 已添加 Dockerfile 以方便您使用。

Dockerfile 使用环境变量 DATABASE_URLPORT

功能

  • 在自托管的网络服务器中存储您的机密
  • 使用根密钥锁定和解锁您的实例
  • 使用 AES-256-GCM 加密您的机密
  • 具有 IAM 系统,允许您通过角色白名单和权限级别锁定机密
  • 使用标签轻松对您的机密进行分类
  • Postgres 后端(未来将支持多个后端)
  • 用 Rust 编写

未来短期功能

  • 机密将被加密和签名

长期路线图

  • 日志/跟踪
  • SDK

Chamber 的工作原理

Chamber 有几个组件

  • 一个可以按需解锁和锁定网络服务器
  • 命令行界面,是当前与Chamber服务器交互的主要方式
  • 核心(包含存储数据、加密解密和其他杂项方法的方法)

Chamber有多安全?

请参阅SECURITY.md文件以获取完整解释。

对于TL;DR:如果您将其用于小型项目,该服务相当安全。正在根据上述文件中概述的内容进行改进安全性的工作。请期待API的不稳定性。

依赖项

~33–48MB
~1M SLoC