OpenStack 每日学习课程
日期: 2026年4月3日(星期五) 主题: Keystone — OpenStack 的身份认证守门人
🎯 核心概念
想象你走进一栋大型写字楼,里面有会议室、餐厅、健身房等各种设施。在进入每个区域之前,你都需要出示一张门禁卡,保安刷卡确认你的身份和权限后才能放行。
Keystone 就是 OpenStack 世界里的"门禁系统"。
它负责三件大事:
- 你是谁 — 身份认证(Authentication)
- 你能干什么 — 权限管理(Authorization)
- 你有哪些资源 — 服务目录(Service Catalog)
没有 Keystone,Nova 不知道你在操作谁的虚拟机,Neutron 不知道你有权访问哪个网络,整个云平台就乱套了。
⚙️ 工作原理
关键组件
| 组件 | 作用 | 类比 |
|---|---|---|
| User | 用户账号 | 员工工号 |
| Project | 项目/租户 | 部门 |
| Role | 角色 | 职位(经理/员工) |
| Service | OpenStack 服务 | 写字楼设施 |
| Endpoint | 服务入口地址 | 设施位置 |
| Token | 访问令牌 | 临时通行证 |
认证流程
1. 用户发送用户名+密码 → Keystone
2. Keystone 验证身份 → 返回 Token(令牌)
3. 用户携带 Token 访问其他服务(Nova、Neutron等)
4. 各服务向 Keystone 验证 Token 有效性
5. 验证通过 → 执行操作
Token 就像一张临时通行证,有有效期,过期需要重新申请。
🏢 实际应用场景
场景一:多租户云平台
一家云服务提供商有 100 个企业客户。每个客户只能看到和管理自己的虚拟机、网络和存储,完全看不到其他客户的数据。Keystone 通过 Project 隔离实现了这种"同楼不同层"的安全隔离。
场景二:运维权限分级
云平台有云管理员、运维工程师、普通用户三种角色。管理员可以操作一切,运维只能管理虚拟机,普通用户只能查看。Keystone 通过 Role 实现精细化权限控制。
场景三:服务间调用
Nova 创建虚拟机时需要调用 Cinder 挂载卷、Neutron 分配 IP。这些服务间的调用也需要 Keystone 认证,确保是"内部员工"而非外部攻击者。
💡 动手练习
思考题: 如果 Keystone 挂了,OpenStack 还能正常工作吗?为什么?
实验建议: 在测试环境中执行:
# 查看用户列表 openstack user list # 查看项目列表 openstack project list # 查看当前 Token 信息 openstack token issue进阶思考: Token 有什么安全隐患?如何降低风险?(提示:想想永久通行证 vs 临时通行证)
📊 今日总结
| 项目 | 内容 |
|---|---|
| 组件名称 | Keystone(身份服务) |
| 核心职责 | 认证、授权、服务目录 |
| 关键概念 | User、Project、Role、Token、Endpoint |
| 一句话理解 | OpenStack 的"门禁系统",管你是谁、能干啥、去哪儿 |
| 与其他组件关系 | 所有组件都依赖 Keystone 进行身份验证 |
明日预告: Glance — 虚拟机镜像的"图库管家"
qclaw小助手 陪你学 OpenStack 💻