搜索

第 3 章 将 OpenStack Key Manager (barbican)与硬件安全模块(HSM)设备集成

download PDF

将您的 Red Hat OpenStack Platform 部署与硬件安全模块(HSM)设备集成,以使用基于硬件的加密处理来提高安全状况。当您计划 OpenStack Key Manager 与 HSM 设备集成时,您必须选择一个受支持的加密类型和 HSM 设备,设置常规备份,并查看可能影响部署的任何其他信息或限制。

3.1. 将 OpenStack Key Manager (barbican)与 Atos HSM 集成

要将 PKCS#11 后端与您的 Trustway Proteccio Net HSM 设备集成,请使用参数创建一个配置文件,以使用 HSM 连接 barbican。您可以通过在 atos_hsms 参数下列出两个或多个 HSM 来启用 HA。

规划

默认情况下,HSM 最多可以有 32 个并发连接。如果您超过这个数字,您可能会遇到 PKCS#11 客户端中的内存错误。您可以计算连接数量,如下所示:

  • 每个控制器都有一个 barbican-api 和一个 barbican-worker 进程。
  • 每个 Barbican API 进程通过 N Apache worker 执行 - (其中 N 默认为 CPU 的数量)。
  • 每个 worker 都有一个到 HSM 的连接。

每个 barbican-worker 进程都有一个与数据库的连接。您可以使用 BarbicanWorkers heat 参数定义每个 API 进程的 Apache worker 数量。默认情况下,Apache worker 的数量与 CPU 数量匹配。

例如,如果您有三个控制器,每个控制器都有 32 个内核,则每个控制器上的 Barbican API 使用 32 个 Apache worker。因此,一个控制器会消耗所有 32 HSM 连接。为避免此争用,请限制为每个节点配置的 Barbican Apache worker 的数量。在本例中,将 BarbicanWorkers 设置为 10,以便所有三个控制器都能够为每个 HSM 进行 10 个并发连接。

前提条件

  • 为 Atos HSM 提供厂商软件的受密码保护的 HTTPS 服务器
表 3.1. HTTPS 服务器提供的文件
FileExample由提供

Proteccio 客户端软件 ISO 镜像文件

Proteccio1.09.05.iso

HSM Vendor

SSL 服务器证书

proteccio.CRT

HSM 管理员

SSL 客户端证书

client.CRT

HSM 管理员

SSL 客户端密钥

client.KEY

HSM 管理员

流程

  1. 为 Barbican 创建 configure-barbican.yaml 环境文件并添加以下参数:

    parameter_defaults
      BarbicanSimpleCryptoGlobalDefault: false
      BarbicanPkcs11CryptoGlobalDefault: true
      BarbicanPkcs11CryptoLogin: ********
      BarbicanPkcs11CryptoSlotId: 1
      ATOSVars:
        atos_client_iso_name: Proteccio1.09.05.iso
        atos_client_iso_location: https://user@PASSWORD:example.com/Proteccio1.09.05.iso
        atos_client_cert_location: https://user@PASSWORD:example.com/client.CRT
        atos_client_key_location: https://user@PASSWORD:example.com/client.KEY
        atos_hsms:
          - name: myHsm1
            server_cert_location: https://user@PASSWORD:example.com/myHsm1.CRT
            ip: 192.168.1.101
          - name: myHsm2
            server_cert_location: https://user@PASSWORD:example.com/myHsm2.CRT
            ip: ip: 192.168.1.102
    注意

    atos_hsms 参数取代了 os_hsm_ip_addressatos_server_cert_location 的参数,这些参数将在以后的版本中被删除。

    表 3.2. Heat 参数
    参数

    BarbicanSimpleCryptoGlobalDefault

    这是一个布尔值,用于确定 simplecrypto 是否为全局默认值。

    BarbicanPkcs11GlobalDefault

    这是一个布尔值,用于确定 PKCS#11 是否为全局默认值。

    BarbicanPkcs11CryptoSlotId

    Barbican 使用的虚拟 HSM 的插槽 ID。

    ATOSVars

    atos_client_iso_name

    Atos 客户端软件 ISO 的文件名。这个值必须与 atos_client_iso_location 参数的 URL 中的文件名匹配。

    atos_client_iso_location

    URL,包括用户名和密码,用于指定 Proteccio 客户端软件 ISO 镜像的 HTTPS 服务器位置。

    atos_client_cert_location

    指定 SSL 客户端证书的 HTTPS 服务器位置的 URL,包括用户名和密码。

    atos_client_key_location

    指定 SSL 客户端密钥的 HTTPS 服务器位置的 URL,包括用户名和密码。这必须是上述客户端证书的匹配密钥。

    atos_hsms

    指定 HSM 的名称、证书位置和 IP 地址的一个或多个 HSM 列表。当您在此列表中包含多个 HSM 时,Barbican 为负载平衡和高可用性配置 HSM。

  2. 在部署命令中包含自定义 configure-barbican.yaml, barbican.yaml 和针对 ATOS 的 barbican-backend-pkcs11-atos.yaml 环境文件,以及与部署相关的任何其他环境文件:

    $ openstack overcloud deploy \
        --timeout 100 \
        --templates /usr/share/openstack-tripleo-heat-templates \
        --stack overcloud \
        --libvirt-type kvm \
        --ntp-server clock.redhat.com \
        -e /home/stack/containers-prepare-parameter.yaml \
        -e /home/stack/templates/config_lvm.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
        -e /home/stack/templates/network/network-environment.yaml \
        -e /home/stack/templates/hostnames.yml \
        -e /home/stack/templates/nodes_data.yaml \
        -e /home/stack/templates/extra_templates.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/services/barbican.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/barbican-backend-pkcs11-atos.yaml \
        -e /home/stack/templates/configure-barbican.yaml \
        --log-file overcloud_deployment_with_atos.log

验证

  1. 创建测试 secret:

    $ openstack secret store --name testSecret --payload 'TestPayload'
    +---------------+------------------------------------------------------------------------------------+
    | Field         | Value                                                                              |
    +---------------+------------------------------------------------------------------------------------+
    | Secret href   | https://192.168.123.163/key-manager/v1/secrets/4cc5ffe0-eea2-449d-9e64-b664d574be53 |
    | Name          | testSecret                                                                         |
    | Created       | None                                                                               |
    | Status        | None                                                                               |
    | Content types | None                                                                               |
    | Algorithm     | aes                                                                                |
    | Bit length    | 256                                                                                |
    | Secret type   | opaque                                                                             |
    | Mode          | cbc                                                                                |
    | Expiration    | None                                                                               |
    +---------------+------------------------------------------------------------------------------------+
  2. 检索您刚才创建的 secret 的有效负载:

    openstack secret get https://192.168.123.163/key-manager/v1/secrets/4cc5ffe0-eea2-449d-9e64-b664d574be53 --payload
    +---------+-------------+
    | Field   | Value       |
    +---------+-------------+
    | Payload | TestPayload |
    +---------+-------------+
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.