用例

镜像签名验证

验证镜像签名可以确保镜像在原始上传后未被替换或更改。镜像签名验证功能使用 Castellan 作为密钥管理器来存储加密签名。镜像签名和证书 UUID 与镜像一起上传到镜像 (glance) 服务。Glance 在从密钥管理器检索证书后验证签名。当镜像启动时,计算服务 (nova) 在从密钥管理器检索证书后验证签名。

有关更多详细信息,请参阅 可信镜像文档

卷加密

卷加密功能使用 Castellan 提供静态数据加密。当用户创建一个加密卷类型,并使用该类型创建卷时,块存储 (cinder) 服务会请求密钥管理器创建一个与该卷关联的密钥。当卷附加到实例时,nova 检索该密钥。

有关更多详细信息,请参阅 数据加密部分卷加密

临时磁盘加密

临时磁盘加密功能解决了数据隐私问题。临时磁盘是虚拟机操作系统使用的临时工作空间。如果没有加密,敏感的用户信息可能会在此磁盘上被访问,并且磁盘卸载后可能会残留信息。

临时磁盘加密功能可以通过安全的包装器与密钥管理服务接口,并通过基于每个租户的方式提供临时磁盘加密密钥来支持数据隔离。建议使用后端密钥存储以增强安全性(例如,可以使用 HSM 或 KMIP 服务器作为 barbican 后端密钥存储)。

有关更多详细信息,请参阅 临时磁盘加密文档

Sahara

Sahara 在运行过程中会生成和存储多个密码。为了加强 sahara 对密码的使用,可以指示它使用外部密钥管理器来存储和检索这些密钥。要启用此功能,必须首先在堆栈中部署 OpenStack 密钥管理器服务。

在堆栈上部署了密钥管理器服务后,必须配置 sahara 以启用密钥的外部存储。Sahara 使用 Castellan 库与 OpenStack 密钥管理器服务接口。该库提供对密钥管理器的可配置访问。

有关更多信息,请参阅 Sahara 高级配置指南

Magnum

为了使用原生客户端(分别为 dockerkubectl)访问 Docker Swarm 或 Kubernetes,magnum 使用 TLS 证书。为了存储这些证书,建议使用 Barbican 或 Magnum 数据库 (x590keypair)。

也可以使用本地目录 (local),但被认为是不安全的,不适合生产环境。

有关设置 Magnum 证书管理器的更多详细信息,请参阅 容器基础设施管理服务文档。

Octavia/LBaaS

Neutron 的 LBaaS(负载均衡即服务)功能和 Octavia 项目需要证书及其私钥才能为 TLS 连接提供负载均衡。Barbican 可用于存储这些敏感信息。

有关更多详细信息,请参阅 如何创建 TLS 负载均衡器部署 TLS 终止的 HTTPS 负载均衡器

Swift

可以使用对称密钥加密 Swift 容器,以减轻未经授权方获得磁盘物理访问权限时读取用户数据的风险。

有关更多详细信息,请参阅 对象加密在官方 swift 文档中。

配置文件中的密码

OpenStack 服务的配置文件包含许多明文密码。这些包括,例如,服务用户用于向 keystone 验证 keystone 令牌的密码。

目前没有解决方案来混淆这些密码。建议通过文件权限适当地保护这些文件。

目前正在进行一项工作,将这些密钥存储在 Castellan 后端,然后让 oslo.config 使用 Castellan 来检索这些密钥。