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 9 计算机中运行安装程序,且必须使用安装程序支持的 FIPS 版本。请参阅使用 'oc adm extract' 的 FIPS 的安装程序部分。
有关在 RHEL 中配置 FIPS 模式的更多信息,请参阅在 FIPS 模式中安装该系统。
对于集群中的 Red Hat Enterprise Linux CoreOS(RHCOS)机器,当机器根据 install-config.yaml
文件中的选项的状态进行部署时,会应用这个更改,该文件管理用户在集群部署过程中可以更改的集群选项。在 Red Hat Enterprise Linux(RHEL)机器中,您必须在计划用作 worker 机器的机器上安装操作系统时启用 FIPS 模式。
因为 FIPS 必须在集群首次引导的操作系统前启用,所以您不能在部署集群后启用 FIPS。
1.4.1. 使用 oc adm extract
获取支持 FIPS 的安装程序
OpenShift Container Platform 需要使用支持 FIPS 的安装二进制文件来在 FIPS 模式中安装集群。您可以使用 OpenShift CLI (oc
) 从发行镜像中提取该二进制文件。获取二进制文件后,您可以继续集群安装,将 openshift-install
命令的所有实例替换为 openshift-install-fips
。
先决条件
-
已使用版本 4.16 或更新版本安装了 OpenShift CLI (
oc
)。
流程
运行以下命令,从安装程序中提取支持 FIPS 的二进制文件:
$ oc adm release extract --registry-config "${pullsecret_file}" --command=openshift-install-fips --to "${extract_dir}" ${RELEASE_IMAGE}
其中:
<pullsecret_file>
- 指定包含 pull secret 的文件的名称。
<extract_dir>
- 指定您要提取二进制文件的目录。
<RELEASE_IMAGE>
- 指定您使用的 OpenShift Container Platform 发行版本的 Quay.io URL。有关查找发行镜像的更多信息,请参阅提取 OpenShift Container Platform 安装程序。
-
继续集群安装,将
openshift-install
命令的所有实例替换为openshift-install-fips
。
1.4.2. 使用公共 OpenShift 镜像获取支持 FIPS 的安装程序
OpenShift Container Platform 需要使用支持 FIPS 的安装二进制文件来在 FIPS 模式中安装集群。您可以通过从公共 OpenShift 镜像下载来获取此二进制文件。获取二进制文件后,进行集群安装,将 openshift-install
二进制文件的所有实例替换为 openshift-install-fips
。
先决条件
- 您可以访问互联网。
流程
- 从 https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest-4.16/openshift-install-rhel9-amd64.tar.gz 下载安装程序。
提取安装程序。例如,在使用 Linux 操作系统的计算机上运行以下命令:
$ tar -xvf openshift-install-rhel9-amd64.tar.gz
-
继续集群安装,将
openshift-install
命令的所有实例替换为openshift-install-fips
。
1.4.3. OpenShift Container Platform 中的 FIPS 验证
OpenShift Container Platform 在 RHEL 和 RHCOS 中使用特定的 FIPS 验证或 Modules In Process 模块用于使用它们的操作系统组件。请参阅 RHEL 核心加密组件。例如,当用户使用 SSH 连接到 OpenShift Container Platform 集群和容器时,这些连接会被正确加密。
OpenShift Container Platform 组件以 Go 语言编写,并使用红帽的 golang 编译器构建。当您为集群启用 FIPS 模式时,需要加密签名的所有 OpenShift Container Platform 组件都会调用 RHEL 和 RHCOS 加密库。
属性 | 限制: |
---|---|
RHEL 9 和 RHCOS 操作系统支持 FIPS。 | FIPS 实现没有使用在单一步骤中执行哈希计算和签名生成或验证的功能。在以后的 OpenShift Container Platform 版本中,将继续评估并改进此限制。 |
CRI-O 运行时支持 FIPS。 | |
OpenShift Container Platform 服务支持 FIPS。 | |
从 RHEL 9 和 RHCOS 二进制文件和镜像中获得的 FIPS 验证或模块加密模块和算法。 | |
使用 FIPS 兼容 golang 编译器。 | TLS FIPS 并不完善,但计划在将来的 OpenShift Container Platform 版本中被支持。 |
支持多个架构中的 FIPS。 |
目前,只有使用 |
1.4.4. 集群使用的组件支持 FIPS
虽然 OpenShift Container Platform 集群本身使用 FIPS 验证或Modules In Process 模块,但请确保支持 OpenShift Container Platform 集群的系统使用 FIPS 验证的或模块 In Process 模块进行加密。
1.4.4.1. etcd
要确保存储在 etcd 中的 secret 使用 FIPS 验证的/Modules in Process 加密,以 FIPS 模式引导节点。在以 FIPS 模式安装集群后,您可以使用 FIPS 批准的 aes cbc
加密算法加密 etcd 数据。
1.4.4.2. Storage
对于本地存储,使用 RHEL 提供的磁盘加密或使用 RHEL 提供的磁盘加密的容器原生存储。通过将所有数据存储到使用 RHEL 提供的磁盘加密的卷中,并为您的集群启用 FIPS 模式,静态数据和正在启动的数据或网络数据都受到 FIPS 验证的/Modules in Process 加密的保护。您可以将集群配置为加密每个节点的根文件系统,如 自定义节点 中所述。
1.4.4.3. runtimes
要确保容器知道它们在使用 FIPS 验证的/Modules in Process 加密模块的主机上运行,请使用 CRI-O 管理您的运行时。
1.4.5. 在 FIPS 模式下安装集群
要使用 FIPS 模式安装集群,请按照在首选基础架构上安装自定义集群的说明进行。在部署集群前,请确定在 install-config.yaml
文件中设置了 fips: true
。
要为集群启用 FIPS 模式,您必须从配置为以 FIPS 模式操作的 RHEL 计算机运行安装程序。有关在 RHEL 中配置 FIPS 模式的更多信息,请参阅在 FIPS 模式中安装该系统。
如果使用 Azure File 存储,则无法启用 FIPS 模式。
要将 AES CBC
加密应用到 etcd 数据存储中,请在安装集群后按照 加密 etcd 数据 过程进行操作。
如果您在集群中添加 RHEL 节点,请确保在机器初始引导前启用 FIPS 模式。请参阅将 RHEL 计算机器添加到 OpenShift Container Platform 集群,以及以 FIPS 模式安装系统。