多租户与权限管理
多租户模型
CloudOS 采用三层租户模型:Domain → Project → User
Domain(域)
├── Project A(项目/租户)
│ ├── User 1(管理员)
│ ├── User 2(普通用户)
│ └── 资源:VM / 网络 / 存储
├── Project B
│ ├── User 3
│ └── 资源:VM / 网络 / 存储
└── Project C
└── ...概念说明
| 概念 | 说明 | 类比 |
|---|---|---|
| Domain | 最高层组织单元,通常对应一个企业/部门 | 公司 |
| Project | 资源隔离单元,独立的资源池和配额 | 部门/项目组 |
| User | 具体操作人员,属于一个或多个 Project | 员工 |
| Role | 权限集合,赋予 User 在 Project 中的操作权限 | 职位 |
| Group | 用户组,批量管理用户权限 | 部门 |
角色与权限
内置角色
| 角色 | 权限范围 |
|---|---|
| admin | 全局管理员,可操作所有资源 |
| project_admin | 项目管理员,管理本项目所有资源 |
| member | 普通成员,可创建和管理自己的资源 |
| reader | 只读,仅查看资源信息 |
RBAC 权限矩阵
| 操作 | admin | project_admin | member | reader |
|---|---|---|---|---|
| 创建 VM | ✅ | ✅ | ✅ | ❌ |
| 删除他人 VM | ✅ | ✅ | ❌ | ❌ |
| 管理配额 | ✅ | ✅ | ❌ | ❌ |
| 创建用户 | ✅ | ✅(本项目) | ❌ | ❌ |
| 查看账单 | ✅ | ✅ | ❌ | ✅ |
| 修改安全组 | ✅ | ✅ | ✅ | ❌ |
网络隔离
多租户网络隔离是 CloudOS 的核心能力:
租户 A 网络(VxLAN VNI: 1001)
├── VM-A1: 192.168.1.10
└── VM-A2: 192.168.1.11
租户 B 网络(VxLAN VNI: 1002)
├── VM-B1: 192.168.1.10 ← 与租户A相同IP,完全隔离
└── VM-B2: 192.168.1.11
租户间通信:
默认完全隔离
如需互通:通过共享网络或路由器互联对接企业 AD/LDAP
生产环境通常需要对接企业现有的 AD(Active Directory)或 LDAP:
yaml
# Keystone LDAP 配置(/etc/keystone/keystone.conf)
[ldap]
url = ldap://ad.company.com
user = CN=cloudos-svc,OU=ServiceAccounts,DC=company,DC=com
password = service-account-password
suffix = DC=company,DC=com
user_tree_dn = OU=Users,DC=company,DC=com
user_objectclass = person
user_id_attribute = sAMAccountName
user_name_attribute = sAMAccountName
user_mail_attribute = mail
group_tree_dn = OU=Groups,DC=company,DC=com
group_objectclass = groupOfNames
group_id_attribute = cn
group_name_attribute = cn对接流程:
- 在 AD 中创建 CloudOS 服务账号
- 配置 Keystone LDAP 后端
- 同步 AD 用户/组到 CloudOS
- 在 CloudOS 中为 AD 组分配角色
计费与成本分摊
CloudOS 内置计费模块,支持:
计费模式
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 按需计费 | 按实际使用时长计费 | 弹性业务 |
| 包年包月 | 预付费,享受折扣 | 稳定业务 |
| 竞价实例 | 利用空闲资源,价格低但可能被回收 | 批处理任务 |
计费项目
VM 费用
├── 计算费用(vCPU × 单价 × 时长)
├── 内存费用(GB × 单价 × 时长)
└── 系统盘费用(GB × 单价 × 时长)
存储费用
├── 块存储(GB × 单价 × 时长)
└── 对象存储(GB × 单价 + 请求次数 × 单价)
网络费用
├── 浮动 IP(个 × 单价 × 时长)
└── 出流量(GB × 单价)成本报表
CloudOS 提供多维度成本分析:
- 按项目(租户)汇总
- 按资源类型汇总
- 按时间趋势分析
- 支持导出 Excel/CSV
审计日志
所有操作均记录审计日志,满足合规要求:
json
{
"timestamp": "2024-01-15T10:30:00Z",
"user": "zhangsan",
"project": "finance-dept",
"action": "server.create",
"resource_id": "vm-abc123",
"source_ip": "10.0.1.100",
"result": "success",
"details": {
"flavor": "c1.large",
"image": "CentOS-7.9",
"network": "finance-net"
}
}审计日志支持:
- 实时查询(按用户/操作/时间过滤)
- 长期归档(对接 Elasticsearch)
- 告警规则(异常操作触发告警)