在卷和备份详情中包含加密密钥 ID¶
https://blueprints.launchpad.net/cinder/+spec/include-encryption-key-id-in-details
此规范为加密卷的卷和备份详情添加了 encryption_key_id 字段。
问题描述¶
当前的 API 提供的卷详情包括一个简单的布尔值,指示卷是否加密。但是,当卷加密时,详情中不包含相关的密钥管理器(例如 Barbican)encryption_key_id。这使得将存储在 Barbican 中的加密密钥与其关联的卷关联起来变得困难。任何可能受益于了解卷的 encryption_key_id 的操作员工作流程都需要从 Cinder 数据库读取该值。
类似的情况也适用于加密卷的备份。这些备份包括卷加密密钥的克隆,并且备份的 encryption_key_id 无法通过 API 获取。
用例¶
1. 操作员希望备份和导出 Cinder 卷和 Barbican 密钥,用于灾难恢复 (DR),并在以后恢复卷。了解每个加密卷的 encryption_key_id 将有助于恢复正确的加密密钥。
2.1 用户或管理员想要识别 Cinder 卷和/或备份使用的 Barbican 加密密钥。此提案将允许他们遍历项目列表,并在其详情中存在时注意 encryption_key_id。
2.2 用户或管理员希望知道 Barbican 密钥是否被 Cinder 使用。这与 2.1 类似,但更多地从 Barbican 的角度来看。给定 Barbican 密钥列表,用户或管理员可能希望知道哪个服务正在使用该密钥。
提议的变更¶
此提案将添加一个微版本,以在卷和备份详情中包含 encryption_key_id 字段。该字段仅在相关时包含在详情中
encryption_key_id 已设置(非空)
它不是被过时的固定密钥 ConfKeyManager 使用的全部零值
备选方案¶
操作员仍然需要访问 Cinder 数据库,每当他们需要知道卷或备份的 encryption_key_id 时。
建议的更改可以增强为需要管理员权限。
数据模型影响¶
无
REST API 影响¶
将创建一个新的微版本,并将 encryption_key_id 添加到卷和备份详情中。
安全影响¶
一方面,建议的更改将允许用户查看存储加密密钥的密钥管理器(Barbican)ID。但重要的是要记住以下因素
encryption_key_id 只是一个 UUID,访问实际密钥受 Barbican 的安全策略保护。
卷的 encryption_key_id 已经存在于卷附加 API 返回的 connection_info 中。
Active/Active HA 影响¶
无
通知影响¶
无
其他最终用户影响¶
该功能不会影响用户,除了显示加密卷或备份的详情将包含 encryption_key_id 字段之外。
该功能不需要 cinderclient、openstackclient 或 openstack-sdk 中的更改。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
Alan Bishop <abishop@redhat.com>
工作项¶
添加一个新的微版本。
更新 API 文档和代码。
添加单元测试。
依赖项¶
无
测试¶
单元测试提供了足够的覆盖范围,并且没有计划进行 tempest 更改。
文档影响¶
更新 API 文档。
参考资料¶
无