5.8. コントローラーの設定
この手順では、Ansible ロールを使用して Atos クライアントソフトウェアをコントローラーにダウンロードおよびインストールし、Atos 設定ファイルを変更して、事前定義された HSM IP および認証情報に追加します。
barbican-backend-pkcs11-atos.yaml
という名前のOVERCLOUD_TEMPLATES
に環境ファイルを作成し、HSM の設定情報を入力します。以下に例を示します。tripleo_heat_templates: - /usr/share/openstack-tripleo-heat-templates/environments/services/barbican.yaml - /usr/share/openstack-tripleo-heat-templates/environments/barbican-backend-pkcs11-atos.yaml custom_templates: parameter_defaults: SwiftEncryptionEnabled: true ComputeExtraConfig: nova::glance::verify_glance_signatures: true nova::compute::verify_glance_signatures: true BarbicanPkcs11CryptoLogin: 'sample string' BarbicanPkcs11CryptoSlotId: 1 BarbicanPkcs11CryptoGlobalDefault: true BarbicanPkcs11CryptoLibraryPath: '/usr/lib64/libnethsm.so' BarbicanPkcs11CryptoEncryptionMechanism: 'CKM_AES_CBC' BarbicanPkcs11CryptoHMACKeyType: 'CKK_GENERIC_SECRET' BarbicanPkcs11CryptoHMACKeygenMechanism: 'CKM_GENERIC_SECRET_KEY_GEN' BarbicanPkcs11CryptoMKEKLabel: 'barbican_mkek_5a' BarbicanPkcs11CryptoMKEKLength: 32 BarbicanPkcs11CryptoHMACLabel: 'barbican_hmac_5a' BarbicanPkcs11CryptoATOSEnabled: true BarbicanPkcs11CryptoEnabled: true ATOSVars: atos_client_working_dir: /tmp/atos_client_install atos_client_iso_location: https://your server/Proteccio1.09.03.iso atos_client_iso_name: Proteccio1.09.03.iso atos_client_cert_location: https://your server/proteccio_client.crt atos_client_key_location: https://your server/proteccio_client.key atos_server_cert_location: https://your server/192_168_11_13.crt atos_hsm_ip_address: 192.168.11.12 resource_registry: OS::TripleO::Services::BarbicanBackendPkcs11Crypto: /home/stack/tripleo-heat-templates/puppet/services/barbican backend-pkcs11-crypto.yaml
-
BarbicanPkcs11CryptoGlobalDefault
およびBarbicanPkcs11CryptoEnabled
: これらのオプションは、PKCS#11 をグローバルのデフォルトバックエンドとして設定します。 -
BarbicanPkcs11CryptoMKEKLabel
: HSM で生成される mKEK の名前を定義します。director はこのキーを使用して HSM にこのキーを作成します。この名前は新規インストールごとに一意となる必要があります。そうしないと、同じラベル名が使用されると競合が生じる可能性があります。 BarbicanPkcs11CryptoHMACLabel
: HSM で生成された HMAC 鍵の名前を定義します。director はこのキーを使用して HSM にこのキーを作成します。注記デフォルトでは、HSM は最大 32 の同時接続を許可します。この数が超過すると、PKCS#11 クライアントからメモリーエラーが発生することが予想されます。以下に示すように、接続数を計算することができます。
-
各コントローラーには
barbican-api
と 1 つのbarbican-worker
プロセスがあります。 -
各 Barbican API プロセスは
N
個のApache ワーカーで実行されます (N
はデフォルトで CPU の数に設定されます)。 - 各ワーカーには HSM への 1 つの接続があります。
BarbicanWorkers: 各
barbican-worker
プロセスにはデータベースへの接続が 1 つあり、この設定により API プロセスごとの Apache ワーカーの数を定義できます。デフォルトでは、これは CPU 数に一致します。この設定は、barbican::wsgi::apache::workers を設定
します。Barbican ワーカーの数は、barbican.conf
のパラメーターqueue/asynchronous_workers
によって制御されます。デフォルトは1
です。現在、この値を管理する tripleO パラメーターはありません。たとえば、3 つのコントローラーがあり、それぞれに 32 コアがある場合、それぞれのコントローラーの Barbican API は 32 Apache ワーカーを使用します(
BarbicanWorkers
はデフォルトで32
に設定されます)。そのため、1 つのコントローラーは利用可能な 32 HSM 接続をすべて消費します。この競合を回避するには、各ノードに設定された Barbican Apache ワーカーの数を制限します。この例では、BarbicanWorkers
を10
に設定すると、3 つのコントローラーはすべて HSM への 10 個の同時接続を行うことができます。-
各コントローラーには
-
-
既存の
openstack overcloud deploy
コマンドへのパスを追加して、スクリプトを再実行します。
5.8.1. HSM 接続のテスト
テストシークレットを作成します。以下に例を示します。
$ 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 | +---------+-------------+