Skip to content

多租户与权限管理

多租户模型

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 权限矩阵

操作adminproject_adminmemberreader
创建 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

对接流程

  1. 在 AD 中创建 CloudOS 服务账号
  2. 配置 Keystone LDAP 后端
  3. 同步 AD 用户/组到 CloudOS
  4. 在 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)
  • 告警规则(异常操作触发告警)

褚成志的云与计算笔记