7.2. 在 Key Manager 服务中添加 Trustway HSM 客户端
为密钥管理器服务构建一个新镜像,以集成所需的 Proteccio 软件。更新 RHOSO 时,您必须重复此步骤。创建 ansible playbook 以构建此镜像简化了为您的信任 HSM 配置 RHOSO 的过程。ansible-role-rhoso-Trustway-hsm RPM (属于 RHOSO 存储库的一部分)包含此 playbook 所需的角色。以下 playbook 自动化了配置 Trustway HSM 后端以使用 RHOSO Key Manager 服务所需的任务:
-
从红帽源存储库下载
barbican-api和barbican-worker镜像 - 将 Trustway 客户端软件添加到镜像中
- 将生成的镜像存储在您的目标存储库中
- 为密钥管理器服务创建 OpenShift secret
playbook 使用您的 Trustway HSM 的密钥、证书和配置来创建两个 secret。一个名为 login_secret,其中包含您的 HSM 密码或 PIN。其他 secret 称为 proteccio_data_secret,其中包含您的证书、密钥和 proteccio.rc 配置文件。Red Hat OpenShift Container Platform (RHOCP)环境中需要这些 secret,以启用 Key Manager 服务和 HSM 之间的安全通信。您可以使用 Ansible playbook 来识别要复制到的客户端证书。
先决条件
- Linux 的信任客户端镜像。有关获取此软件的详情,请联系 Eviden。
- 可用的镜像服务,如内部可用的 Quay 服务,或一个带有 quay.io 的帐户。如需更多信息,请参阅在 OpenShift Container Platform 上部署 Red Hat Quay Operator。
- 信任 HSM 的客户端证书和密钥。
- Trustway HSM 证书文件。
- 您在工作站上运行命令,您可以在其中运行 Ansible playbook。
流程
使用 DNF 安装
ansible-role-rhoso-proteccio-hsm:$ sudo dnf -y install ansible-role-rhoso-proteccio-hsm将 Linux 的 Trustway 客户端镜像以及客户端证书和客户端密钥放在
/opt/proteccio目录树中。$ cp <trustway_client_cert>.crt /opt/proteccio $ cp <Trustway_client_key>.key /opt/proteccio $ cp <Proteccio3.06.05.iso> /opt/proteccio-
将
<trustway_client_cert> 替换为客户端证书的文件名。 -
将
<trustway_client_key> 替换为客户端密钥的文件名。 -
将
<Proteccio3.06.05.iso> 替换为 Linux ISO 的信任客户端的名称。
-
将
-
从 HSM 设备检索服务器证书,并将其复制到
/opt/proceccio目录中。有关从您的 Proteccio HSM 检索服务器证书的更多信息,请参阅厂商文档。 - 可选:如果您有一个以上的 HSM 用于 HA,请为每个 HSM 获取每个证书,并将它们完全放在 /opt/proteccio 目录中。
更新您的
proteccio.rc文件,使其类似于如下:[PROTECCIO] IPaddr=<Trustway_HSM_IP_address> SSL=1 SrvCert=<HSM_Certificate_Name>.CRT [CLIENT] Mode=0 LoggingLevel=7 LogFile=/var/log/barbican/proteccio.log StatusFile=/var/log/barbican/HSM_Status.log ClntKey=<Client_Certificate_Name>.key ClntCert=<Client_Certificate_Name>.crt-
将
<Trustway_HSM_IP_Address> 替换为 Trustway HSM 的 IP 地址。 -
将
<HSM_Certificate_Name> 替换为信任证书的名称。 -
在上面的文件中,
Mode=0表示只有一个 HSM 设备就位。 -
将
<Client_Certificate_Name> 替换为您的客户端证书名称。
-
将
可选: 如果要配置 HA,您必须为每个 HSM 的 IP 地址包含附加条目。每个新的 HSM 必须位于 [PROTECCIO] 部分。此外,您会将 [CLIENT] 中的 Mode 参数更改为
1或2的值。如需更多信息,请参阅官方 Eviden 文档。[PROTECCIO] IPaddr=<Trustway_HSM-2_IP_address> SSL=1 SrvCert=<HSM-2_Certificate_Name>.CRT [CLIENT] Mode=2-
将
<Trustway_HSM-2_IP_Address> 替换为第二个信任 HSM 的 IP 地址。 -
创建一个新的
[PROTECCIO]部分,其中包含您环境中每个后续信任单元的对应参数。
-
将
将
proteccio.rc配置文件移到/opt/proteccio:$ mv proteccio.rc /opt/proteccio创建名为 ansible-proteccio.yaml 的 playbook,其内容如下:
vars: Trustway_client_name: <name> Trustway_server_cert_src: "/opt/trustway/<server.pem>" Trustway_partition_password: "<password>" Trustway_data_secret: "Trustway_data_secret" login_secret: "login_secret" barbican_dest_image_namespace: "<namespace>" proteccio_client_src: "file:///opt/proteccio/<iso_file>" proteccio_password: "{{ PIN to log into proteccio }}" kubeconfig_path: "<kubeconfig_path" oc_dir: "<directory>" roles: - rhoso_proteccio_hsm-
将
<name> 替换为您的信任证书的名称。 -
将
<server.pem> 替换为服务器证书的名称。 -
将
<password> 替换为您的 HSM 分区密码。 -
将
<namespace> 替换为 Quay.io 或其他容器 registry 的帐户名称。 -
将 <
iso_file> 的内容替换为 Proteccio 客户端 ISO 文件的名称。 -
将 <
;kubeconfig_path> 的内容替换为 OpenShift 配置文件的完整路径。 -
将
<directory> 替换为 OpenShift 客户端位置的完整路径。
-
将
运行 playbook:
$ ansible-playbook ansible-proteccio.yaml