2 个不稳定版本
0.2.0 | 2023 年 12 月 30 日 |
---|---|
0.1.0 | 2023 年 12 月 25 日 |
#1725 in 密码学
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 部署
Dockerfile 使用环境变量 DATABASE_URL
和 PORT
。
功能
- 在自托管的网络服务器中存储您的机密
- 使用根密钥锁定和解锁您的实例
- 使用 AES-256-GCM 加密您的机密
- 具有 IAM 系统,允许您通过角色白名单和权限级别锁定机密
- 使用标签轻松对您的机密进行分类
- Postgres 后端(未来将支持多个后端)
- 用 Rust 编写
未来短期功能
- 机密将被加密和签名
长期路线图
- 日志/跟踪
- SDK
Chamber 的工作原理
Chamber 有几个组件
- 一个可以按需解锁和锁定网络服务器
- 命令行界面,是当前与Chamber服务器交互的主要方式
- 核心(包含存储数据、加密解密和其他杂项方法的方法)
Chamber有多安全?
请参阅SECURITY.md文件以获取完整解释。
对于TL;DR:如果您将其用于小型项目,该服务相当安全。正在根据上述文件中概述的内容进行改进安全性的工作。请期待API的不稳定性。
依赖项
~33–48MB
~1M SLoC