15.8. 数据加密
该选项存在用于加密存储在磁盘上的项目数据或通过网络传输的项目数据,如下面描述的 OpenStack 卷加密功能。这比一般建议外,用户在将自己的数据发送到自己的供应商前对其进行加密。
代表项目加密数据的重要性主要与攻击者可以访问项目数据的供应商认为风险非常相关。此处可能有一些要求,以及每个政策的要求、私有合同,甚至当涉及公有云供应商的私有合同的情况下也是如此。在选择项目加密策略前,请考虑获取风险评估和法律建议。
每个实例或每个对象加密是首选进行的、按降序、每个项目、每个主机和每个云聚合的。本建议与实施的复杂性和困难有关。目前,对于某些项目,实施加密非常困难或根本不可能。实施者应该优先考虑加密项目数据。
通常,数据加密与可靠地销毁项目和每个实例数据的能力相关,只需抛出密钥。请注意,为此,最好以可靠和安全的方式销毁这些密钥。
提供加密用户数据的机会:
- Object Storage 对象
- 网络数据
15.8.1. 卷加密 复制链接链接已复制到粘贴板!
OpenStack 中的卷加密功能基于每个项目支持隐私。支持以下功能:
- 创建和使用加密卷类型,通过仪表板或命令行界面启动
- 启用加密和选择参数,如加密算法和密钥大小
- iSCSI 数据包中包含的卷数据是加密的
- 支持加密备份(如果原始卷加密)
- 卷加密状态的仪表板。包括表示卷已加密,并包含加密参数,如算法和密钥大小
- 使用密钥管理服务的接口
15.8.2. Object Storage 对象 复制链接链接已复制到粘贴板!
对象存储(swift)支持在存储节点上对对象数据的可选加密。对象数据的加密旨在降低当未授权方获得对磁盘的物理访问权限时用户的数据读取的风险。
剩余的数据加密是由代理服务器 WSGI 管道中包含的中间件实现的。该功能是 swift 集群的内部,无法通过 API 公开。客户端不知道数据由此功能在内部加密到 swift 服务;内部加密的数据不应通过 swift API 返回到客户端。
在 swift 中,以下数据会被加密:
-
对象内容,如对象
PUT请求正文的内容。 -
具有非零内容的对象的实体标签(
ETag)。 -
所有自定义用户对象元数据值。例如,使用带有
X-Object-Meta-前缀的标头的PUT或POST请求发送元数据。
以上列表中未包含的任何数据或元数据都不会被加密,包括:
- 帐户、容器和对象名称
- 帐户和容器自定义用户元数据值
- 所有自定义用户元数据名称
- 对象 Content-Type 值
- 对象大小
- 系统元数据
15.8.3. 块存储性能和后端 复制链接链接已复制到粘贴板!
启用操作系统时,您可以使用 Intel 和 AMD 处理器中提供的硬件加速功能增强 OpenStack 卷加密性能。
OpenStack 卷加密功能在主机上使用 dm-crypt 或原生 QEMU 加密支持来保护卷数据。红帽建议您在创建加密卷时使用 LUKS 卷类型。
15.8.4. 网络数据 复制链接链接已复制到粘贴板!
Compute 节点的项目数据可以通过 IPsec 或其他隧道进行加密。这种方法不是 OpenStack 中的常见或标准,但是一个选项,可供培训和感兴趣的实施者。同样,加密的数据会保持加密,因为它通过网络传输。