搜索

3.3. 将 OpenStack Key Manager (barbican)与 Entrust nShield Connect XC HSM 集成

download PDF

要将 PKCS#11 后端与您的 Entrust nShield Connect XC HSM 集成,请使用 Ansible 角色在 Controller 上下载并安装 Entrust 客户端软件,并创建一个 Barbican 配置文件使其包含预定义的 HSM IP 和凭证。

前提条件

  • 为 Entrust nShield Connect XC 提供厂商软件的密码保护 HTTPS 服务器。

流程

  1. 为 Barbican 创建 configure-barbican.yaml 环境文件,并添加特定于您的环境的参数。使用以下片断作为示例:

        parameter_defaults:
            VerifyGlanceSignatures: true
            SwiftEncryptionEnabled: true
            BarbicanPkcs11CryptoLogin: 'sample string'
            BarbicanPkcs11CryptoSlotId: '492971158'
            BarbicanPkcs11CryptoGlobalDefault: true
            BarbicanPkcs11CryptoLibraryPath: '/opt/nfast/toolkits/pkcs11/libcknfast.so'
            BarbicanPkcs11CryptoEncryptionMechanism: 'CKM_AES_CBC'
            BarbicanPkcs11CryptoHMACKeyType: 'CKK_SHA256_HMAC'
            BarbicanPkcs11CryptoHMACKeygenMechanism: 'CKM_NC_SHA256_HMAC_KEY_GEN'
            BarbicanPkcs11CryptoMKEKLabel: 'barbican_mkek_10'
            BarbicanPkcs11CryptoMKEKLength: '32'
            BarbicanPkcs11CryptoHMACLabel: 'barbican_hmac_10'
            BarbicanPkcs11CryptoThalesEnabled: true
            BarbicanPkcs11CryptoEnabled: true
            ThalesVars:
                thales_client_working_dir: /tmp/thales_client_install
                thales_client_tarball_location: https://your server/CipherTools-linux64-dev-12.40.2.tgz
                thales_client_tarball_name: CipherTools-linux64-dev-12.40.2.tgz
                thales_client_path: linux/libc6_11/amd64/nfast
                thales_client_uid: 42481
                thales_client_gid: 42481
                thales_km_data_location: https://your server/kmdata_post_card_creation.tar.gz
                thales_km_data_tarball_name: kmdata_post_card_creation.tar.gz
                thales_rfs_server_ip_address: 192.168.10.12
                thales_hsm_config_location: hsm-C90E-02E0-D947
                nShield_hsms:
                  - name: hsm-name.example.com
                    ip: 192.168.10.10
                thales_rfs_user: root
                thales_rfs_key: |
                    -----BEGIN RSA PRIVATE KEY-----
    Sample private key
    -----END RSA PRIVATE KEY-----
    
    resource_registry:
        OS::TripleO::Services::BarbicanBackendPkcs11Crypto: /home/stack/tripleo-heat-templates/puppet/services/barbican-backend-pkcs11-crypto.yaml
    表 3.4. Heat 参数
    参数

    BarbicanSimpleCryptoGlobalDefault

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

    BarbicanPkcs11GlobalDefault

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

    BarbicanPkcs11CryptoSlotId

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

    BarbicanPkcs11CryptoMKEKLabel

    此参数定义 HSM 中生成的 mKEK 的名称。director 使用这个名称在 HSM 中创建此密钥。

    BarbicanPkcs11CryptoHMACLabel

    此参数定义 HSM 中生成的 HMAC 密钥的名称。director 使用这个名称在 HSM 中创建此密钥。

    ThalesVars

    thales_client_working_dir

    用户定义的临时工作目录。

    thales_client_tarball_location

    指定 Entrust 软件的 HTTPS 服务器位置的 URL。

    thales_km_data_tarball_name

    Entrust 软件 tarball 的名称。

    thales_rfs_key

    用于获取与 RFS 服务器的 SSH 连接的私钥。您必须将它添加为 RFS 服务器的授权密钥。

  2. 包含自定义 configure-barbican.yaml 环境文件,以及 barbican.yaml 和 Thales 特定的 barbican-backend-pkcs11-thales.yaml 环境文件,以及运行 openstack overcloud deploy 命令时部署所需的任何其他模板:

    $ 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-thales.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 |
    +---------+-------------+

3.3.1. 使用 Entrust nShield Connect 的负载均衡

现在,您可以通过指定有效 HSM 的数组在 Entrust nShield Connect HSMs 上启用负载共享。当列出多个 HSM 时,会启用负载共享。

这个功能在此发行版本中作为技术预览提供,因此不受红帽完全支持。它只应用于测试,不应部署在生产环境中。

有关技术预览功能的更多信息,请参阅覆盖范围详细信息

流程

  • 当您为 Entrust nShield Connect HSM 配置 nameip 参数时,指定多个将启用负载共享:

      parameter_defaults:
        ....
        ThalesVars:
          ....
          nshield_hsms:
            - name: hsm-name1.example.com
              ip: 192.168.10.10
            - name: hsm-nam2.example.com
              ip: 192.168.10.11
          ....
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.