Bootstrap via CLI¶
移除使用 ADMIN_TOKEN 初始化集群的方式,该 CLI 必须在与 Keystone 安装相同的机器上执行。
问题描述¶
ADMIN_TOKEN 是一种不好的部署初始化方法。对于在初始部署后未能禁用它的任何站点,它都存在巨大的安全风险。由于它在站点上线后被移除,因此无法在不 A) 重启服务和 B) 提供巨大的攻击面情况下重新启用它。但是,对于损坏的系统,有时它是唯一可以有效解决问题的工具。
ADMIN_TOKEN 在配置文件中指定,这意味着任何具有读取文件权限的人都具有无限能力来影响 Keystone 系统中的更改。这是强制配置文件只能由 root 和 keystone 服务读取的值之一。这限制了非 root 用户读取配置以确定系统状态和帮助进行故障排除的能力。
提议的变更¶
用一组影响必要的更改来初始化 Keystone 服务器的 CLI 操作替换 ADMIN_TOKEN
keystone-manage bootstrap
参数 |
默认值 |
含义 |
|---|---|---|
bootstrap-username |
admin |
|
bootstrap-password |
无 |
bootstrap 用户密码 |
bootstrap-generate-password |
无 |
如果设置,将自动生成密码并在输出中返回 |
bootstrap-project-name |
admin |
Keystone bootstrap 过程中创建的初始项目。 |
bootstrap-role-name |
admin |
Keystone bootstrap 过程中创建的初始角色名。 |
备选方案¶
直接数据库访问,这将绕过系统中的所有逻辑。
预先编写的数据库脚本,这将始终将系统置于已知状态;错误和重复的风险很高,无法修复卡住的系统。
安全影响¶
应减少 Keystone 服务器的攻击面。现在,任何可以读取配置文件的用户都可以影响这些更改。通过此更改,用户访问将限制为运行 Keystone 进程的相同 Unix 用户,并通过 sudo 进行管理。
通知影响¶
通过 API 进行这些更改时生成的相同通知将通过此 API 生成。
其他最终用户影响¶
这将改变 CMS 与 Keystone 的交互方式。ADMIN_TOKEN 方法将被弃用。
性能影响¶
无
其他部署者影响¶
这将移除使用 ADMIN_TOKEN 进行故障排除的能力,并将其替换为更受控的方法。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
morganfainberg
- 其他贡献者
ayoung
工作项¶
启用 bootstrap CLI
弃用 ADMIN_TOKEN
更新 devstack 以使用 bootstrap
从 pipeline 中移除 admin_token
许多版本后 * 移除对 ADMIN_TOKEN 的支持
依赖项¶
无
文档影响¶
这将改变所有下游项目初始化 Keystone 的方式。