mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-18 10:43:15 +00:00
feature: support kms && encryt (#573)
* feat(kms): implement key management service with local and vault backends Signed-off-by: junxiang Mu <1948535941@qq.com> * feat(kms): enhance security with zeroize for sensitive data and improve key management Signed-off-by: junxiang Mu <1948535941@qq.com> * remove Hashi word Signed-off-by: junxiang Mu <1948535941@qq.com> * refactor: remove unused request structs from kms handlers Signed-off-by: junxiang Mu <1948535941@qq.com> --------- Signed-off-by: junxiang Mu <1948535941@qq.com>
This commit is contained in:
+239
@@ -0,0 +1,239 @@
|
||||
# RustFS 文档中心
|
||||
|
||||
欢迎来到 RustFS 分布式文件系统文档中心!
|
||||
|
||||
## 📚 文档导航
|
||||
|
||||
### 🔐 KMS (密钥管理服务)
|
||||
|
||||
RustFS KMS 提供企业级密钥管理和数据加密服务。
|
||||
|
||||
| 文档 | 描述 | 适用场景 |
|
||||
|------|------|----------|
|
||||
| [KMS 使用指南](./kms/README.md) | 完整的 KMS 使用文档,包含快速开始、配置和部署 | 所有用户必读 |
|
||||
| [HTTP API 接口](./kms/http-api.md) | HTTP REST API 接口文档和使用示例 | 管理员和运维 |
|
||||
| [编程 API 接口](./kms/api.md) | Rust 库编程接口和代码示例 | 开发者集成 |
|
||||
| [配置参考](./kms/configuration.md) | 完整的配置选项和环境变量说明 | 系统管理员 |
|
||||
| [故障排除](./kms/troubleshooting.md) | 常见问题诊断和解决方案 | 运维人员 |
|
||||
| [安全指南](./kms/security.md) | 安全最佳实践和合规指导 | 安全架构师 |
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 1. KMS 5分钟快速部署
|
||||
|
||||
**生产环境(使用 Vault)**
|
||||
|
||||
```bash
|
||||
# 1. 启用 Vault 功能编译
|
||||
cargo build --features vault --release
|
||||
|
||||
# 2. 配置环境变量
|
||||
export RUSTFS_VAULT_ADDRESS=https://vault.company.com:8200
|
||||
export RUSTFS_VAULT_TOKEN=hvs.CAESIJ...
|
||||
|
||||
# 3. 启动服务
|
||||
./target/release/rustfs server
|
||||
```
|
||||
|
||||
**开发测试(使用本地后端)**
|
||||
|
||||
```bash
|
||||
# 1. 编译测试版本
|
||||
cargo build --release
|
||||
|
||||
# 2. 配置本地存储
|
||||
export RUSTFS_KMS_BACKEND=Local
|
||||
export RUSTFS_KMS_LOCAL_KEY_DIR=/tmp/rustfs-keys
|
||||
|
||||
# 3. 启动服务
|
||||
./target/release/rustfs server
|
||||
```
|
||||
|
||||
### 2. S3 兼容加密
|
||||
|
||||
```bash
|
||||
# 上传加密文件
|
||||
curl -X PUT https://rustfs.company.com/bucket/sensitive.txt \
|
||||
-H "x-amz-server-side-encryption: AES256" \
|
||||
--data-binary @sensitive.txt
|
||||
|
||||
# 自动解密下载
|
||||
curl https://rustfs.company.com/bucket/sensitive.txt
|
||||
```
|
||||
|
||||
## 🏗️ 架构概览
|
||||
|
||||
### KMS 三层安全架构
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ 应用层 │
|
||||
│ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ S3 API │ │ REST API │ │
|
||||
│ └─────────────┘ └─────────────┘ │
|
||||
├─────────────────────────────────────────────────┤
|
||||
│ 加密层 │
|
||||
│ ┌─────────────┐ 加密 ┌─────────────────┐ │
|
||||
│ │ 对象数据 │ ◄───► │ 数据密钥 (DEK) │ │
|
||||
│ └─────────────┘ └─────────────────┘ │
|
||||
├─────────────────────────────────────────────────┤
|
||||
│ 密钥管理层 │
|
||||
│ ┌─────────────────┐ 加密 ┌──────────────┐ │
|
||||
│ │ 数据密钥 (DEK) │ ◄────│ 主密钥 │ │
|
||||
│ └─────────────────┘ │ (Vault/HSM) │ │
|
||||
│ └──────────────┘ │
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 核心特性
|
||||
|
||||
- ✅ **多层加密**: Master Key → DEK → Object Data
|
||||
- ✅ **高性能**: 1MB 流式加密,支持大文件
|
||||
- ✅ **多后端**: Vault (生产) + Local (测试)
|
||||
- ✅ **S3 兼容**: 支持标准 SSE-S3/SSE-KMS 头
|
||||
- ✅ **企业级**: 审计、监控、合规支持
|
||||
|
||||
## 📖 学习路径
|
||||
|
||||
### 👨💻 开发者
|
||||
|
||||
1. 阅读 [编程 API 接口](./kms/api.md) 了解 Rust 库使用
|
||||
2. 查看代码示例学习集成方法
|
||||
3. 参考 [故障排除](./kms/troubleshooting.md) 解决问题
|
||||
|
||||
### 👨💼 系统管理员
|
||||
|
||||
1. 从 [KMS 使用指南](./kms/README.md) 开始
|
||||
2. 学习 [HTTP API 接口](./kms/http-api.md) 进行管理
|
||||
3. 详细阅读 [配置参考](./kms/configuration.md)
|
||||
4. 设置监控和日志
|
||||
|
||||
### 👨🔧 运维工程师
|
||||
|
||||
1. 熟悉 [HTTP API 接口](./kms/http-api.md) 进行日常管理
|
||||
2. 掌握 [故障排除](./kms/troubleshooting.md) 技能
|
||||
3. 了解 [安全指南](./kms/security.md) 要求
|
||||
4. 建立运维流程
|
||||
|
||||
### 🔒 安全架构师
|
||||
|
||||
1. 深入学习 [安全指南](./kms/security.md)
|
||||
2. 评估威胁模型和风险
|
||||
3. 制定安全策略
|
||||
|
||||
## 🤝 贡献指南
|
||||
|
||||
我们欢迎社区贡献!
|
||||
|
||||
### 文档贡献
|
||||
|
||||
```bash
|
||||
# 1. Fork 项目
|
||||
git clone https://github.com/your-username/rustfs.git
|
||||
|
||||
# 2. 创建文档分支
|
||||
git checkout -b docs/improve-kms-guide
|
||||
|
||||
# 3. 编辑文档
|
||||
# 编辑 docs/kms/ 下的 Markdown 文件
|
||||
|
||||
# 4. 提交更改
|
||||
git add docs/
|
||||
git commit -m "docs: improve KMS configuration examples"
|
||||
|
||||
# 5. 创建 Pull Request
|
||||
gh pr create --title "Improve KMS documentation"
|
||||
```
|
||||
|
||||
### 文档规范
|
||||
|
||||
- 使用清晰的标题和结构
|
||||
- 提供可运行的代码示例
|
||||
- 包含适当的警告和提示
|
||||
- 支持多种使用场景
|
||||
- 保持内容最新
|
||||
|
||||
## 📞 支持与反馈
|
||||
|
||||
### 获取帮助
|
||||
|
||||
- **GitHub Issues**: https://github.com/rustfs/rustfs/issues
|
||||
- **讨论区**: https://github.com/rustfs/rustfs/discussions
|
||||
- **文档问题**: 在相关文档页面创建 Issue
|
||||
- **安全问题**: security@rustfs.com
|
||||
|
||||
### 问题报告模板
|
||||
|
||||
报告问题时请提供:
|
||||
|
||||
```markdown
|
||||
**环境信息**
|
||||
- RustFS 版本: v1.0.0
|
||||
- 操作系统: Ubuntu 20.04
|
||||
- Rust 版本: 1.75.0
|
||||
|
||||
**问题描述**
|
||||
简要描述遇到的问题...
|
||||
|
||||
**重现步骤**
|
||||
1. 步骤一
|
||||
2. 步骤二
|
||||
3. 步骤三
|
||||
|
||||
**期望行为**
|
||||
描述期望的正确行为...
|
||||
|
||||
**实际行为**
|
||||
描述实际发生的情况...
|
||||
|
||||
**相关日志**
|
||||
```bash
|
||||
# 粘贴相关日志
|
||||
```
|
||||
|
||||
**附加信息**
|
||||
其他可能有用的信息...
|
||||
```
|
||||
|
||||
## 📈 版本历史
|
||||
|
||||
| 版本 | 发布日期 | 主要特性 |
|
||||
|------|----------|----------|
|
||||
| v1.0.0 | 2024-01-15 | 🎉 首个正式版本,完整 KMS 功能 |
|
||||
| v0.9.0 | 2024-01-01 | 🔐 KMS 系统重构,性能优化 |
|
||||
| v0.8.0 | 2023-12-15 | ⚡ 流式加密,1MB 块大小优化 |
|
||||
|
||||
## 🗺️ 开发路线图
|
||||
|
||||
### 即将发布 (v1.1.0)
|
||||
|
||||
- [ ] 密钥自动轮转
|
||||
- [ ] HSM 集成支持
|
||||
- [ ] Web UI 管理界面
|
||||
- [ ] 更多合规性支持 (SOC2, HIPAA)
|
||||
|
||||
### 长期规划
|
||||
|
||||
- [ ] 多租户密钥隔离
|
||||
- [ ] 密钥导入/导出工具
|
||||
- [ ] 性能基准测试套件
|
||||
- [ ] Kubernetes Operator
|
||||
|
||||
## 📋 文档反馈
|
||||
|
||||
帮助我们改进文档!
|
||||
|
||||
**这些文档对您有帮助吗?**
|
||||
- 👍 很有帮助
|
||||
- 👌 基本满意
|
||||
- 👎 需要改进
|
||||
|
||||
**改进建议**:
|
||||
请在 GitHub Issues 中提出具体的改进建议。
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: 2024-01-15
|
||||
**文档版本**: v1.0.0
|
||||
|
||||
*感谢使用 RustFS!我们致力于为您提供最好的分布式文件系统解决方案。*
|
||||
Reference in New Issue
Block a user