第 2 章 选择后端
机密(如证书、API 密钥和密码)可以作为加密 Blob 存储在 barbican 数据库中,或者直接存储在安全存储系统中。
要将 secret 作为加密的 blob 存储在 barbican 数据库中,可以使用以下选项:
-
简单加密插件 - 默认启用简单的加密插件,并使用单个对称密钥加密 secret 的 Blob。这个密钥以纯文本形式存储在
barbican.conf
文件中。
注意
目前,仅支持简单的加密插件。
- PKCS#11 crypto 插件 - PKCS#11 crypto 插件使用特定于项目的密钥加密密钥(KEK)加密 secret,这些密钥保存在 barbican 数据库中。这些项目特定的 KEK 由主 KEK 进行加密,存储在硬件安全模块(HSM)中。所有加密和解密操作都放置在 HSM 中,而不是进程内存中。PKCS#11 插件通过 PKCS#11 协议与 HSM 通信。由于加密是在安全硬件上完成的,并且每个项目使用不同的 KEK,所以此选项比简单的加密插件更安全。
注意
关于高可用性(HA)选项:barbican 服务在 Apache 中运行,由 director 配置,以使用 HAProxy 进行高可用性。后端层的 HA 选项取决于所使用的后端。例如,对于简单加密,所有 barbican 实例都在配置文件中具有相同的加密密钥,从而形成简单的 HA 配置。
2.1. 在后端间迁移
Barbican 允许您为项目定义不同的后端。如果没有项目映射,则 secret 会存储在全局默认后端中。这意味着可以配置多个后端,但必须定义至少一个全局后端。为不同后端提供的 heat 模板包含将每个后端设置为默认值的参数。
如果在特定后端中存储 secret,然后决定迁移到新的后端,您可以保留旧的后端,同时启用新的后端作为全局默认值(或作为项目特定的后端)。因此,旧的 secret 仍可通过旧后端使用。