添加 barbican-manage 命令¶
蓝图: https://blueprints.launchpad.net/barbican/+spec/add-barbican-manage-cmd
客户端蓝图: 无
引入一个新的 ‘barbican-manage’ 命令作为 Barbican 管理工具。该命令与 Barbican 服务交互,用于执行通常无法通过 REST API 完成的管理操作。这可以提高可用性和未来可扩展性。
其他 OpenStack 服务,如 Keystone [1] 和 Nova [2] 也提供类似的命令,供服务管理员使用。
问题描述¶
目前,Barbican 使用单独的管理员命令来执行管理功能。例如,使用 barbican-db-manage 进行数据库迁移,使用 pkcs11-key-generation 和 pkcs11-kek-rewarp 进行 HSM/pkcs11 相关的管理等。未来版本将添加更多新的管理功能。现在是将所有这些单独的命令整合到一个工具下的最佳时机,以简化操作。
提议的变更¶
新的 ‘barbican-manage’ 命令的语法将是
barbican-manage [选项] 类别 操作 [附加参数]
类别 和 操作 将是支持的子命令列表。barbican-manage 的初始实现只是重构现有的命令代码,并将所有功能整合到一个命令中。
注意
现有的管理员命令将继续工作,并将在未来根据 OpenStack 标准弃用策略 [3] 弃用。
目前我们有 2 个类别:db 用于数据库管理,hsm 用于 HSM/PKCS11 管理。
类别 db 替换现有的 barbican-db-manage 命令
db cleanup
从数据库中删除所有软删除和过期的密钥
db restore
从数据库中恢复一个软删除的密钥
db revision
创建一个新的数据库版本文件
db upgrade
升级到未来的数据库版本
db history
显示变更集历史记录
db current
显示数据库的当前版本
类别 db 可以接受附加参数
- --dburl
数据库的 URL
- --from-file
密钥垃圾回收配置文件
- 类别 hsm 替换现有的 pkcs11-key-generation 和
pkcs11-kek-rewrap 命令
hsm gen-mkek
生成 HSM 主密钥加密密钥
hsm gen-mhmk
生成 HSM 主 HMAC 密钥
hsm rewrap-pkek
在轮换到新的 MKEK 后重新封装项目 KEK
类别 hsm 可以接受以下附加参数
- --library-path
PKCS11 库路径
- --slot-id
插槽 ID
- --passphrase
PKCS11 登录密码
- --label
密钥标签
- --length
密钥长度
- --dry-run
显示将要进行的更改(非破坏性)
注意
–dry-run 需要指定以上 5 个参数
常规 ‘选项’ 包括
- --help
显示帮助信息
- --version
显示命令版本
该命令将读取标准的 barbican.conf 文件以获取 debug、verbose 和 log_file 选项的设置。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
用户必须具有适当的权限才能运行 barbican-manage 命令。
通知与审计影响¶
可以生成事件日志以支持审计。
Python 和命令行客户端影响¶
对 Barbican 客户端和 OpenStack 客户端没有影响。
将添加一个新的 CLI 管理命令,因此需要添加其用户指南。
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
如果现有管理命令未在部署脚本中使用,则无需更改。
即使部署者在脚本中使用现有的管理命令,也不会立即产生影响。在根据 OpenStack 标准弃用策略中的程序删除旧命令之前,脚本最终需要转换为使用新的 barbican-manage 命令。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
<jianhua>
- 其他贡献者
<None>
工作项¶
- 工作项目或任务
在 barbican/cmd 中创建一个新的 barbican-manage.py,并将函数调用到脚本 db_manage.py 和 pkcs11_*.py 中
添加单元测试用例
在 setup.cfg 中添加 barbican-manage 命令脚本
添加 barbican-manage 命令的用户指南文档
弃用现有的命令脚本。在现有命令中添加弃用警告消息。
依赖项¶
无
测试¶
将为所有子命令和各种选项添加单元测试。
文档影响¶
将添加一个新的 barbican-manage 命令用户指南,其中应包括数据库迁移子命令的新用户指南以及从现有 https://docs.openstack.org/developer/barbican/api/userguide/pkcs11keygeneration.html 修改的 pkcs11 相关子命令的用户指南