添加 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 文件以获取 debugverboselog_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 相关子命令的用户指南

参考资料