ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

OpenStack 身份与权限:Keystone

OpenStack 身份与权限:Keystone OpenStack 身份与权限Keystone前置OpenStack 创建第一台实例目标搞清用户 / 项目 / 角色 / Token会用 CLI 建用户并授权遇到 401 和「空列表」知道往哪想。引言Keystone 是 OpenStack 的门禁谁可以登录、能进哪个项目、以什么角色干活、Token 多久失效、API 地址Endpoint在哪。运维里一半「诡异问题」其实是身份问题Token 过期、项目切错、角色不够、Endpoint 指错。四个名词名词含义类比User登录主体账号Project资源归属边界旧称 Tenant租户 / 命名空间Role在某项目或域上的权限集合岗位member / adminToken短期通行证会话票据还有Domain域多公司/多事业部时用DevStack 学习默认一个Default域就够。Horizon ↔ CLI看现有身份数据登录与当前 Tokensource~/devstack/openrc admin admin# 学习截图可省略完整 Token只看项目 / 用户 / 过期时间openstack token issue-cexpires-cuser_id-cproject_id关注project_id、user_id、过期时间expires。用户 / 项目 / 角色 / 服务想看什么Horizon管理员CLI用户身份 → 用户openstack user list项目身份 → 项目openstack project list角色身份 → 角色openstack role list谁在某项目有何角色项目 → 管理成员openstack role assignment list --user u --project p服务与 Endpoint管理员 → 系统信息openstack service list/endpoint listopenstack user list openstack project list openstack role list openstackservicelist openstack endpoint list动手建一个学习用账号目标项目training用户alice角色member能开实例但不能乱改全局。source~/devstack/openrc admin admin openstack project create training--descriptionlearning projectopenstack user create alice--passwordAlicePass1--projecttraining openstack roleadd--useralice--projecttraining member# 验证绑定openstack role assignment list--useralice--projecttraining--names用新用户打开 CLI 会话DevStack 可用手动 export或临时改用# 方式复用 openrc 思路exportOS_AUTH_URLhttp://HOST_IP/identityexportOS_PROJECT_NAMEtrainingexportOS_USERNAMEaliceexportOS_PASSWORDAlicePass1exportOS_USER_DOMAIN_NAMEDefaultexportOS_PROJECT_DOMAIN_NAMEDefaultexportOS_IDENTITY_API_VERSION3openstack token issue openstack server list# 应为空但不应报 401Horizon退出后用alice登录右上角项目选training。练习完后切回管理员按顺序清理先解绑角色再删用户、项目source~/devstack/openrc admin admin openstack role remove--useralice--projecttraining member openstack user delete alice openstack project delete training若项目里已有实例等资源要先删干净否则project delete会失败。Token 与「突然 401」现象常见原因Unauthorized/ 401密码错、Token 过期、时间漂移能登录但操作 Forbidden角色不够只有 member 却做管理员动作列表空白但别人看得见项目作用域不对不是没权限那么简单实践建议# 重新 source openrc等于换新 Tokensource~/devstack/openrc admin admin openstack token issue虚拟机时间不对会导致 Token 校验失败DevStack 学习机也建议确认date -u。Endpoint客户端到底打到哪openstack endpoint listpublic/internal/admin三类 URL。学习环境通常都指向同一HOST_IP。若改过 IP 却没更新 Endpoint会出现「能 SSH 进虚拟机但 openstack 命令全挂」。与日常运维相关的几条习惯改资源前先token issue确认当前项目。给人开通 用户 项目 角色缺一不可。管理员排查用admin 必要时--all-projects不要用 demo 去猜全局状态。生产还有应用凭证、联合身份等DevStack 先把 User/Project/Role/Token 练熟。小结Keystone 管谁、在哪个项目、什么角色、持什么 Token、API 在哪。「空列表」优先查项目「Forbidden」查角色「401」查密码/Token/时间。下一篇OpenStack 镜像Glance参考Keystone 文档
返回列表