用户、配额与安全¶
OpenNebula 的多租户能力来自身份认证、User/Group、ACL、资源所有权和 Quota 的组合。只创建多个账号但不给资源边界,并不是真正的多租户。
权限模型¶
- 认证回答“你是谁”。
- ACL/所有权回答“你能对哪些对象做什么”。
- Quota回答“你最多能使用多少”。
- 模板治理回答“允许你创建什么规格的资源”。
四者缺一,都可能造成越权或资源失控。
推荐的租户组织¶
- 按部门、项目或环境创建 Group,不让所有人长期使用
oneadmin。 - 普通用户只实例化已审核模板,不允许任意 RAW 配置或挂载未知设备。
- 网络和镜像按 Group 授权;公共基础镜像只读共享。
- 分别设置 VM 数量、CPU、内存、存储和网络地址配额。
- 运维管理员、镜像管理员、租户管理员和审计角色分离。
凭据和入口安全¶
- 为 Web 和 API 配置 TLS,并限制管理网访问来源。
- 外部 LDAP/OIDC 等身份源应保留受控的本地应急管理员。
- 定期轮换服务密码、数据库密码、SSH 密钥和 API 凭据。
- 不在 Template、Context 或命令历史中保存永久明文密码。
- 限制
oneadmin私钥读取范围;泄露后视为所有计算节点管理权限泄露。 - 对高风险操作保留审计日志,并同步到外部日志平台。
网络隔离¶
安全组是对 VM 流量的策略控制,但不能替代所有边界防护。仍要结合:
- 租户 VLAN/VXLAN 或物理网络隔离。
- 管理网、存储网与业务网分离。
- 上游防火墙、出口控制和东西向访问策略。
- 防 MAC/IP 欺骗能力与地址池治理。
- 对管理 API、数据库、SSH 和存储端口的最小暴露。
镜像供应链¶
- 只从可信来源获取基础镜像并记录校验值。
- 在隔离环境构建、扫描和测试镜像。
- 使用版本号而不是覆盖同名镜像后无法追踪。
- 定期更新安全补丁,声明停止维护日期。
- 发布前清理机器标识、密钥、缓存和业务数据。
- 对可持久化 Image 的修改权限进行严格限制。
权限验收¶
使用普通租户账号实际验证:
- 能否看到其他 Group 的 VM、Image 和 VNet。
- 能否创建超过配额的 VM 或超规格实例。
- 能否修改模板绕开安全组、网络或设备限制。
- 删除 VM 时能否影响共享/持久镜像。
- API Token 失效、账号禁用和人员离职后访问是否真正撤销。
官方参考:Users and Groups、Quotas、ACL Rules。