14.2.3.2. 启用 Tang 磁盘加密


使用以下步骤在 OpenShift Container Platform 安装过程中启用 Tang 模式磁盘加密。

先决条件

  • 您已在安装节点上下载了 OpenShift Container Platform 安装程序。
  • 您可以使用 Red Hat Enterprise Linux (RHEL) 8 机器来生成 Tang Exchange 密钥的指纹。

流程

  1. 设置 Tang 服务器或访问现有服务器。具体步骤请查看网络绑定磁盘加密
  2. 添加内核参数来配置集群在安装 Red Hat Enterprise Linux CoreOS(RHCOS)时的网络。例如:在内核命令行中添加参数来配置 DHCP 网络,指定 ip=dhcp,或者设置静态网络。对于 DHCP 和静态网络,您必须提供 rd.neednet=1 内核参数。

    重要

    跳过这一步会导致第二次引导失败。

  1. 如果尚未安装,在 RHEL 8 机器上安装 clevis 软件包:

    $ sudo yum install clevis
    Copy to Clipboard
  1. 在 RHEL 8 计算机上,运行以下命令来生成交换密钥的指纹。使用 Tang 服务器的 URL 替换 http://tang.example.com:7500

    $ clevis-encrypt-tang '{"url":"http://tang.example.com:7500"}' < /dev/null > /dev/null 
    1
    Copy to Clipboard
    1
    在本例中,tangd.socket 侦听 Tang 服务器上的端口 7500
    注意

    此步骤中仅使用 clevis-encrypt-tang 命令,以生成交换密钥的指纹。此时不会将数据传递给命令以进行加密,因此 /dev/null 作为输入而不是纯文本提供。加密的输出也会发送到 /dev/null,因为此过程不需要它。

    输出示例

    The advertisement contains the following signing keys:
    
    PLjNyRdGw03zlRoGjQYMahSZGu9 
    1
    Copy to Clipboard

    1
    Exchange 键的指纹。

    当出现 Do you wish to trust these keys? [ynYN] 提示时,输入 Y

    注意

    RHEL 8 提供 Clevis 版本 15,它使用 SHA-1 哈希算法来生成指纹。些其他发行版提供 Clevis 版本 17 或更高版本,它们使用 SHA-256 哈希算法进行指纹。您必须使用 SHA-1 创建 thumbprint 的 Clevis 版本来防止在 OpenShift Container Platform 集群节点上安装 Red Hat Enterprise Linux CoreOS (RHCOS) 时出现 Clevis 绑定问题。

  2. 创建 Base64 编码文件,使用新生成的 Tang server 替换 url,thumbprint 替换thp

    $ (cat <<EOM
    {
     "url": "http://tang.example.com:7500", 
    1
    
     "thp": "PLjNyRdGw03zlRoGjQYMahSZGu9" 
    2
    
    }
    EOM
    ) | base64 -w0
    Copy to Clipboard
    1
    指定 Tang 服务器的 URL。在本例中,tangd.socket 侦听 Tang 服务器上的端口 7500
    2
    指定上一步中生成的 Exchange key thumbprint。

    输出示例

    ewogInVybCI6ICJodHRwOi8vdGFuZy5leGFtcGxlLmNvbTo3NTAwIiwgCiAidGhwIjogIlBMak55UmRHdzAzemxSb0dqUVlNYWhTWkd1OSIgCn0K
    Copy to Clipboard

  3. 如果您还没有生成 Kubernetes 清单,请切换到安装节点上包含安装程序的目录,并创建它们:

    输出示例

    $ ./openshift-install create manifests --dir <installation_directory> 
    1
    Copy to Clipboard

    1
    <installation_directory> 替换为您要存储安装文件的目录的路径。
  4. 使用 Tang 加密模式,为 control plane 或计算节点创建机器配置文件来加密引导磁盘。

    • 要在 control plane 节点上配置加密,请将以下机器配置示例保存到 <installation_directory>/openshift 目录中的一个文件中。例如,将文件命名为 99-openshift-master-tang-encryption.yaml

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfig
      metadata:
        name: master-tang
        labels:
          machineconfiguration.openshift.io/role: master
      spec:
        config:
          ignition:
            version: 3.1.0
          storage:
            files:
            - contents:
                source: data:text/plain;base64,e30K
                source: data:text/plain;base64,ewogInVybCI6ICJodHRwOi8vdGFuZy5leGFtcGxlLmNvbTo3NTAwIiwgCiAidGhwIjogIlBMak55UmRHdzAzemxSb0dqUVlNYWhTWkd1OSIgCn0K 
      1
      
              mode: 420
              overwrite: true
              path: /etc/clevis.json
        kernelArguments:
          - rd.neednet=1 
      2
      Copy to Clipboard
      1
      指定在上一步中生成的以 Base64 编码的字符串。
      2
      添加 rd.neednet=1 内核参数,以在 initramfs 中启动网络。此参数是必需的。
    • 要在计算节点上配置加密,请将以下机器配置示例保存到 <installation_directory>/openshift 目录中的文件中。例如,将文件命名为 99-openshift-worker-tang-encryption.yaml

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfig
      metadata:
        name: worker-tang
        labels:
          machineconfiguration.openshift.io/role: worker
      spec:
        config:
          ignition:
            version: 3.1.0
          storage:
            files:
            - contents:
                source: data:text/plain;base64,e30K
                source: data:text/plain;base64,ewogInVybCI6ICJodHRwOi8vdGFuZy5leGFtcGxlLmNvbTo3NTAwIiwgCiAidGhwIjogIlBMak55UmRHdzAzemxSb0dqUVlNYWhTWkd1OSIgCn0K 
      1
      
              mode: 420
              overwrite: true
              path: /etc/clevis.json
        kernelArguments:
          - rd.neednet=1 
      2
      Copy to Clipboard
      1
      指定在上一步中生成的以 Base64 编码的字符串。
      2
      添加 rd.neednet=1 内核参数,以在 initramfs 中启动网络。此参数是必需的。
  5. 创建 YAML 文件的备份副本。创建 Ignition 配置文件时会消耗原始 YAML 文件。
  6. 继续进行 OpenShift Container Platform 安装的其余部分。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat