移除 nova-cert

https://blueprints.launchpad.net/nova/+spec/remove-nova-cert

nova-cert 已经弃用了一段时间,现在可以完全移除。

问题描述

由于构建 euca bundle 的遗留需求需要证书,Nova 拥有一个非常古老且未维护的“证书”API。 这允许用户在 Nova 集群上使用 openssl 随机生成证书,而不是在本地执行此操作。 私钥在 POST 调用期间返回,稍后可以获取根证书。

在幕后,这项工作是由一个 nova-cert worker 完成的。 虽然它本意是出于熵值的原因作为 fleet 使用,但通过查看代码,作为 fleet 可能导致数据损坏,因为每个 worker 都会生成自己的本地根 CA(导致 API 无法按预期工作)。

此 API 未在当前的 Nova 代码中用于任何用途。 它使 Nova 成为随机第三方使用的证书颁发机构(它真的不应该这样做)。 没有管理熵值的机制,因此对该 API 的积极使用可能会对云的熵值产生负面影响,具体取决于 worker 的位置。

Nova-cert 是 Nova 执行不良的非必要操作的一个例子。 糟糕的安全相关操作比根本不执行它们更糟糕。

用例

提议的变更

nova-cert 自 2016 年 7 月起已被弃用,提交 [1] 添加了发布说明并记录了一条警告,指出 nova-cert 已被弃用。 如果弃用周期允许,删除 nova-cert 应该很简单。

备选方案

另一种方法是不做任何更改,让 nova-cert 保持不变。

数据模型影响

REST API 影响

调用时返回 410 Gone

  • POST /os-certificates

  • GET /os-certificates/root

  • POST /os-cloudpipe

  • GET /os-cloudpipe

  • PUT /os-cloudpipe/configure-project

所有版本的 os-certificatesos-cloudpipe。 不会有一个新的微版本来指示此更改。

此外,应引发并记录表明该功能不再可用的异常。

安全影响

此更改会影响以安全方式生成证书的可能性。 虚拟机往往没有太多的熵值,从而限制了 Linux 内核对伪随机数生成器可用的随机数级别。 用户需要在虚拟机内部安装额外的软件包来增加生成证书时的熵值。

通知影响

其他最终用户影响

性能影响

其他部署者影响

我们消除了运行和管理 nova-cert 进程的需要,这使我们减少了一个需要监控并探索 HA 的服务。

开发人员影响

  • ec2-api 在我们删除 nova-cert 服务后将失效 [2]。

  • os-cloudpipe 已经在文档中被弃用了。 我们也应该在代码中删除它,因为在 nova-certnova-network 都被弃用并标记为删除的情况下,保留它没有意义。

实现

负责人

主要负责人

Maciej Szankin (macsz)

其他贡献者

OSIC

工作项

  • 更改 API 返回代码

  • 删除 nova-cert 启动脚本

  • 删除测试

  • 删除 nova-cert 服务

依赖项

测试

Tempest [3] 需要更新才能适应此更改。

文档影响

更新管理指南以反映这些更改。

参考资料

[1] https://github.com/openstack/nova/commit/789edad0e811d866551bec18dc7729541105f59d [2] https://github.com/openstack/ec2-api/blob/480dc02de0d8413aa518a23b22a0140013df1350/ec2api/clients.py#L140 [3] https://github.com/openstack/tempest/blob/8c8943aa45d0a6428fdd4e32aa4e3bd71f39d050/tempest/api/compute/certificates/test_certificates.py

历史

修订版

发布名称

描述

Pike

引入