第 11 章 项目数据保密
OpenStack 的设计旨在支持具有不同数据要求的项目之间的多租户。云操作员将需要考虑其适用的数据隐私问题和法规。本章阐述了数据在 OpenStack 部署方面的存在性和争议。
11.1. 数据隐私问题
本节介绍了 OpenStack 部署中数据隐私的一些问题。
11.1.1. 数据驻留
过去几年里,数据的隐私和隔离一直是云采用的主要障碍。对于拥有云中数据的问题,云操作员最终是否可以信任此数据的 custodian 在过去存在重大问题。
某些 OpenStack 服务可以访问属于项目或引用项目信息的数据和元数据。例如,存储在 OpenStack 云中的项目数据可能包括以下项目:
- 对象存储对象.
- 计算实例临时文件系统存储.
- 计算实例内存.
- 块存储卷数据。
- 用于计算访问的公钥.
- 镜像服务中的虚拟机镜像。
- 实例快照.
- 传递给计算配置驱动器扩展的数据。
OpenStack 云存储的元数据包括以下项目(此列表不是ex-exustive):
- 机构名称。
- 用户的"续订名称"。
- 正在运行的实例、存储桶、对象、卷和其他与配额相关的项目的数量或大小。
- 运行实例或存储数据的小时数。
- 用户的 IP 地址。
- 内部为计算镜像捆绑生成的私钥。
11.1.2. 数据处理
良好的实践建议,Operator 必须清理云系统介质(数字和非位数),然后再发布机构控制前,或发布之前必须进行重复使用。清理方法应根据特定安全域和信息敏感度实施适当的强度和完整性级别。
NIST Special Publication 800-53 Revision 4 会对这个主题进行特定视图:
The sanitization process removes information from the media such that the information cannot be retrieved or reconstructed. Sanitization techniques, including clearing, purging, cryptographic erase, and destruction, prevent the disclosure of information to unauthorized individuals when such media is reused or released for disposal.
在开发通用数据处理和清理指南时,云操作员应考虑以下内容(根据 NIST 推荐的安全控制):
- 跟踪、记录和验证介质清理和处理操作。
- 测试健全设备和流程以验证性能是否正确。
- 在将此类设备连接到云基础架构之前,可清理可移动的存储设备。
- 销毁无法清理的云系统介质。
因此,OpenStack 部署需要解决以下实践:
- 保护数据纠删代码
- 实例内存清理
- 块存储卷数据
- 计算实例临时存储
- 裸机服务器清理
11.1.3. 数据没有安全清除
在 OpenStack 中,一些数据可能会被删除,但不在上述 NIST 标准上下文中安全清除。这通常适用于数据库中存储的大部分或所有上述定义元数据和信息。这可能是使用数据库和/或系统配置修复,以实现自动清空和定期的空闲空间。
11.1.4. 实例内存清理
特定于各种虚拟机监控程序的处理是实例内存的处理。此行为在计算中没有定义,但一般情况下,管理程序通常会尽力在实例创建或同时删除实例时清理内存。
11.1.5. 加密 Cinder 卷数据
强烈建议使用 OpenStack 卷加密功能。这在卷加密下的 Data Encryption 部分中讨论。使用此功能时,通过安全地删除加密密钥来完成数据架构。在创建卷时,最终用户可以选择此功能,但请注意,管理员必须先执行一次性卷加密功能集。
如果没有使用 OpenStack 卷加密功能,则通常还难以启用其他方法。如果使用了后端插件,则可能通过独立的加密方式或非标准覆盖解决方案。OpenStack 块存储的插件将以多种方式存储数据。许多插件都特定于供应商或技术,而其他插件则是针对文件系统(比如 LVM 或 ZFS)的更多 DIY 解决方案。安全销毁数据的方法将因插件、供应商和文件系统而异。
有些后端(如 ZFS)将支持写时复制以防止数据泄露。在这种情况下,从未写入的块中读取始终会返回零。其他后端(比如 LVM)可能不会原生支持,因此 cinder 插件负责在将之前写入的块放置到用户之前覆盖它们。务必要检查确保所选卷后端提供的哪些保证,并查看哪些补救可用于这些未提供的保证。
11.1.6. 镜像服务延迟删除功能
镜像服务具有延迟删除功能,该功能将在指定的时间期限内暂停删除镜像。如果此行为是安全问题,请考虑禁用此功能;您可以编辑 glance-api.conf
文件并将 latency _delete
选项设置为 False
来实现这一点。
11.1.7. 计算软删除功能
compute 具有软删除功能,它允许在指定时间段内删除的实例处于 soft-delete 状态。此期间内可以恢复实例。要禁用 soft-delete 功能,请编辑 /var/lib/config-data/puppet-generated/nova_libvirt/etc/nova/nova.conf
文件并将 reclaim_instance_interval
选项留空。
11.1.8. Compute 实例的临时存储
请注意,OpenStack 临时磁盘加密功能提供了一种方式,可以在活跃使用期间以及数据被销毁时提高临时存储隐私和隔离。如同加密块存储一样,只需删除加密密钥即可有效地销毁数据。
另一种提供数据隐私的措施(在创建后和销毁临时存储)取决于所选管理程序和计算插件。
计算的 libvirt 驱动程序可能会直接在文件系统上或 LVM 中维护临时存储。虽然当删除时文件系统存储通常不会覆盖数据,尽管有保证不会向用户置备脏扩展。
当使用基于块的 LVM 支持的临时存储时,需要计算软件安全地清除块以防止信息泄露。之前,存在与不当删除临时块存储设备有关的漏洞披露。
文件系统存储是临时块设备比 LVM 更为安全的解决方案,因为无法对用户进行脏扩展。但是,务必要注意用户数据没有被销毁,因此建议加密后备文件系统。