1.3. キーマネージャーのデプロイ
OpenStack Key Manager をデプロイするには、まず barbican サービスの環境ファイルを作成し、追加の環境ファイルでオーバークラウドを再デプロイします。次に、ユーザーを creator
に追加して barbican シークレットを作成および編集するか、シークレットを保存する暗号化されたボリュームを barbican に作成します。
この手順では、barbican が simple_crypto
バックエンドを使用するように設定します。別の設定を必要とする PKCS#11
や、使用する HSM に依存するさまざまな heat テンプレートファイルなど、追加のバックエンドが利用できます。KMIP、Hashicorp Vault および DogTag などの他のバックエンドはサポートされません。
前提条件
- オーバークラウドがデプロイされ、実行されています。
手順
アンダークラウドノードで、barbican の環境ファイルを作成します。
$ cat /home/stack/templates/configure-barbican.yaml parameter_defaults: BarbicanSimpleCryptoGlobalDefault: true
BarbicanSimpleCryptoGlobalDefault
は、このプラグインをグローバルのデフォルトプラグインとして設定します。環境ファイルに以下のオプションを追加することもできます。
-
BarbicanPassword
: barbican サービスアカウントのパスワードを設定します。 -
BarbicanWorkers
:barbican::wsgi::apache
のワーカー数を設定します。デフォルトで'%{::processorcount}'
を使用します。 -
BarbicanDebug
: デバッグを有効にします。 -
BarbicanPolicies
: barbican 向けに設定するポリシーを定義します。ハッシュ値を使用します (例:{ barbican-context_is_admin: { key: context_is_admin, value: 'role:admin' } }
)。このエントリーは/etc/barbican/policy.json
に追加されます。ポリシーの詳細は、後のセクションで説明します。 -
BarbicanSimpleCryptoKek
: キー暗号化キー (KEK) は、指定がない場合は director によって生成されます。
-
スクリプトから以前追加したロール、テンプレート、または環境ファイルを削除せずに、
openstack overcloud deploy
コマンドに以下のファイルを追加します。- /usr/share/openstack-tripleo-heat-templates/environments/services/barbican.yaml
- /usr/share/openstack-tripleo-heat-templates/environments/barbican-backend-simple-crypto.yaml
- /home/stack/templates/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 /home/stack/container-parameters-with-barbican.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/barbican.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/barbican-backend-simple-crypto.yaml \ -e /home/stack/templates/configure-barbican.yaml \ --log-file overcloud_deployment_38.log
creator
ロールのid
を取得します。openstack role show creator +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | None | | id | 4e9c560c6f104608948450fbf316f9d7 | | name | creator | +-----------+----------------------------------+
注記OpenStack Key Manager(barbican) がインストールされていないと、
creator
ロールは表示されません。ユーザーを
creator
ロールに割り当て、関連するプロジェクトを指定します。この例では、project_a
プロジェクトのuser1
という名前のユーザーがcreator
ロールに追加されます。openstack role add --user user1 --project project_a 4e9c560c6f104608948450fbf316f9d7
検証
テストシークレットを作成します。以下に例を示します。
$ 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 | +---------+-------------+