1.4. 支持 FIPS 加密
您可以使用 FIPS 模式安装 OpenShift Container Platform 集群。
OpenShift Container Platform 专为 FIPS 设计。当以 FIPS 模式运行 Red Hat Enterprise Linux (RHEL) 或 Red Hat Enterprise Linux CoreOS (RHCOS)时,OpenShift Container Platform 核心组件使用 RHEL 加密库,在 x86_64、ppc64le 和 s390x 架构上提交到 NIST FIPS 140-2/140-3 Validation。
有关 NIST 验证程序的更多信息,请参阅加密模块验证程序。有关为验证提交的 RHEL 加密库的单独版本的最新 NIST 状态,请参阅 Compliance Activities 和 Government Standards。
要为集群启用 FIPS 模式,您必须从配置为以 FIPS 模式操作的 RHEL 8 计算机运行安装程序。无法运行启用了 FIPS 模式的 RHEL 9 来安装 OpenShift Container Platform 集群。
有关在 RHEL 上配置 FIPS 模式的更多信息,请参阅 (在 FIPS 模式中安装系统)。
对于集群中的 Red Hat Enterprise Linux CoreOS(RHCOS)机器,当机器根据 install-config.yaml
文件中的选项的状态进行部署时,会应用这个更改,该文件管理用户在集群部署过程中可以更改的集群选项。在 Red Hat Enterprise Linux(RHEL)机器中,您必须在计划用作 worker 机器的机器上安装操作系统时启用 FIPS 模式。
因为 FIPS 必须在集群首次引导的操作系统前启用,所以您不能在部署集群后启用 FIPS。
1.4.1. OpenShift Container Platform 中的 FIPS 验证
OpenShift Container Platform 在 RHEL 和 RHCOS 中使用特定的 FIPS 验证或 Modules In Process 模块用于使用它们的操作系统组件。请参阅 RHEL8 core crypto 组件。例如,当用户使用 SSH 连接到 OpenShift Container Platform 集群和容器时,这些连接会被正确加密。
OpenShift Container Platform 组件以 Go 语言编写,并使用红帽的 golang 编译器构建。当您为集群启用 FIPS 模式时,需要加密签名的所有 OpenShift Container Platform 组件都会调用 RHEL 和 RHCOS 加密库。
属性 | 限制 |
---|---|
RHEL 8 和 RHCOS 操作系统支持 FIPS。 | FIPS 实现不提供单个函数来计算哈希函数并验证基于该哈希的键。在以后的 OpenShift Container Platform 版本中,将继续评估并改进此限制。 |
CRI-O 运行时支持 FIPS。 | |
OpenShift Container Platform 服务支持 FIPS。 | |
从 RHEL 8 和 RHCOS 二进制文件和镜像中获得的 FIPS 验证或模块加密模块和算法。 | |
使用 FIPS 兼容 golang 编译器。 | TLS FIPS 并不完善,但计划在将来的 OpenShift Container Platform 版本中被支持。 |
支持多个架构中的 FIPS。 |
目前,只有使用 |
1.4.2. 集群使用的组件支持 FIPS
虽然 OpenShift Container Platform 集群本身使用 FIPS 验证或Modules In Process 模块,但请确保支持 OpenShift Container Platform 集群的系统使用 FIPS 验证的或模块 In Process 模块进行加密。
1.4.2.1. etcd
要确保存储在 etcd 中的 secret 使用 FIPS 验证的/Modules in Process 加密,以 FIPS 模式引导节点。在以 FIPS 模式安装集群后,您可以使用 FIPS 批准的 aes cbc
加密算法加密 etcd 数据。
1.4.2.2. Storage
对于本地存储,使用 RHEL 提供的磁盘加密或使用 RHEL 提供的磁盘加密的容器原生存储。通过将所有数据存储到使用 RHEL 提供的磁盘加密的卷中,并为您的集群启用 FIPS 模式,静态数据和正在启动的数据或网络数据都受到 FIPS 验证的/Modules in Process 加密的保护。您可以将集群配置为加密每个节点的根文件系统,如 自定义节点 中所述。
1.4.2.3. runtimes
要确保容器知道它们在使用 FIPS 验证的/Modules in Process 加密模块的主机上运行,请使用 CRI-O 管理您的运行时。
1.4.3. 在 FIPS 模式下安装集群
要使用 FIPS 模式安装集群,请按照在首选基础架构上安装自定义集群的说明进行。在部署集群前,请确定在 install-config.yaml
文件中设置了 fips: true
。
要为集群启用 FIPS 模式,您必须从配置为以 FIPS 模式操作的 RHEL 计算机运行安装程序。有关在 RHEL 中配置 FIPS 模式的更多信息,请参阅在 FIPS 模式中安装该系统。
如果使用 Azure File 存储,则无法启用 FIPS 模式。
要将 AES CBC
加密应用到 etcd 数据存储中,请在安装集群后按照 加密 etcd 数据 过程进行操作。
如果您在集群中添加 RHEL 节点,请确保在机器初始引导前启用 FIPS 模式。请参阅 RHEL 8 文档中的 Adding RHEL compute machines to a OpenShift Container Platform cluster 和 Enabling FIPS Mode 部分。