Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第3章 barbican のインストール
Red Hat OpenStack Platform では、barbican はデフォルトで有効になっていません。以下の手順では、既存の OpenStack デプロイメントに barbican をデプロイする方法について説明します。barbican はコンテナー化されたサービスとして実行されるため、この手順では新しいコンテナーイメージの準備およびアップロード方法についても説明します。
この手順では、barbican が simple_crypto
バックエンドを使用するように設定します。PKCS11
や DogTag などの追加のバックエンドも提供されていますが、このリリースではサポートされていません。
アンダークラウドノードで、barbican の環境ファイルを作成します。これにより、barbican をインストールするように director に指示します (openstack overcloud deploy […] に含まれている場合)。
$ cat /home/stack/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 によって生成されます。
-
-
このステップでは、barbican 用の新しいコンテナーイメージを準備します。
configure-barbican.yaml
と関連するすべてのテンプレートファイルを含める必要があります。デプロイメントに合わせて次の例を変更します。$ openstack overcloud container image prepare \ --namespace example.lab.local:5000/rhosp13 \ --tag 2018-06-06.1 \ --push-destination 192.168.100.1:8787 \ --output-images-file ~/container-images-with-barbican.yaml \ -e /home/stack/virt/config_lvm.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /home/stack/virt/network/network-environment.yaml \ -e /home/stack/virt/hostnames.yml \ -e /home/stack/virt/nodes_data.yaml \ -e /home/stack/virt/extra_templates.yaml \ -e /home/stack/virt/docker-images.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/configure-barbican.yaml
新しいコンテナーイメージをアンダークラウドレジストリーにアップロードします。
$ openstack overcloud container image upload --debug --config-file container-images-with-barbican.yaml
新しい環境ファイルを準備します。
$ openstack overcloud container image prepare \ --tag 2018-06-06.1 \ --namespace 192.168.100.1:8787/rhosp13 \ --output-env-file ~/container-parameters-with-barbican.yaml \ -e /home/stack/virt/config_lvm.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /home/stack/virt/network/network-environment.yaml \ -e /home/stack/virt/hostnames.yml \ -e /home/stack/virt/nodes_data.yaml \ -e /home/stack/virt/extra_templates.yaml \ -e /home/stack/virt/docker-images.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/configure-barbican.yaml
これらの変更をデプロイメントに適用するには、オーバークラウドを更新し、先ほど openstack overcloud deploy […] で使用したすべての heat テンプレートファイルを指定します。以下に例を示します。
$ 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/virt/config_lvm.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /home/stack/virt/network/network-environment.yaml \ -e /home/stack/virt/hostnames.yml \ -e /home/stack/virt/nodes_data.yaml \ -e /home/stack/virt/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/configure-barbican.yaml \ --log-file overcloud_deployment_38.log
3.1. オーバークラウドの作成者ロールへのユーザーの追加
ユーザーは、barbican シークレットの作成および編集、またはシークレットを barbican に保存する暗号化されたボリュームを作成するには、creator
ロールのメンバーである必要があります。
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
3.1.1. barbican 機能のテスト
本セクションでは、barbican が正常に動作していることをテストする方法を説明します。
テストシークレットを作成します。以下に例を示します。
$ 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 | +---------+-------------+