3.3. OpenStack Key Manager (barbican) と Entrust nShield Connect XC のインテグレーション
PKCS#11 バックエンドを Entrust nShield Connect XC HSM と統合するには、Ansible ロールを使用して、コントローラーに Entrust クライアントソフトウェアをダウンロードしてインストールします。また、Barbican 設定ファイルを作成し、事前に定義された HSM IP および認証情報を追加します。
前提条件
- Entrust nShield Connect XC にベンダーソフトウェアを提供する、パスワードで保護される HTTPS サーバー。
手順
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 サーバーに追加する必要があります。
barbican.yaml
および Thales 固有のbarbican-backend-pkcs11-thales.yaml
環境ファイル、ならびにopenstack overcloud deploy
コマンドを実行する際にデプロイメントに必要なその他すべてのテンプレートに加えて、カスタムのconfigure-barbican.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-thales.yaml \ -e /home/stack/templates/configure-barbican.yaml \ --log-file overcloud_deployment_with_atos.log
検証
テストシークレットを作成します。
$ 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 | +---------------+------------------------------------------------------------------------------------+
作成したシークレットのペイロードを取得します。
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 HSM で負荷分散を有効にできるようになりました。複数の HSM がリストされている場合は、負荷分散が有効になります。
この機能は、本リリースではテクノロジープレビューとして提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。
テクノロジープレビュー機能の詳細は、対象範囲の詳細 を参照してください。
手順
Entrust nShield Connect HSM の
name
とip
パラメーターを設定するときに、複数を指定すると、負荷分散が有効になります。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 ....