mirror of
https://github.com/rustfs/rustfs.git
synced 2026-01-17 01:30:33 +00:00
* 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>
239 lines
6.9 KiB
Markdown
239 lines
6.9 KiB
Markdown
# 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!我们致力于为您提供最好的分布式文件系统解决方案。* |