1.3. 部署密钥管理器
要部署 OpenStack Key Manager,首先为 barbican 服务创建一个环境文件,并使用额外的环境文件重新部署 overcloud。然后,您可以将用户添加到 creator
角色中,以创建和编辑 barbican secret,或者创建在 barbican 中保存 secret 的加密的卷。
此流程将 barbican 配置为使用 simple_crypto
后端。提供了其他后端,如 PKCS#11
需要不同的配置,以及不同的 heat 模板文件,具体取决于使用 HSM。不支持 KMIP、Hashicorp Vault 和 DogTag 等其他后端。
前提条件
- overcloud 已部署和运行
流程
在 undercloud 节点上,为 barbican 创建一个环境文件。
$ cat /home/stack/templates/configure-barbican.yaml parameter_defaults: BarbicanSimpleCryptoGlobalDefault: true
BarbicanSimpleCryptoGlobalDefault
将此插件设置为全局默认插件。您还可以在环境文件中添加以下选项:
-
BarbicanPassword
- 为 barbican 服务帐户设置密码。 -
BarbicanWorkers
- 设置barbican::wsgi::apache
的 worker 数量。默认使用'%{::processorcount}'
。 -
BarbicanDebug
- 启用调试。 -
BarbicanPolicies
- 定义要为 barbican 配置的策略。使用哈希值,例如:{ barbican-context_is_admin: { key: context_is_admin, value: 'role:admin' } }
.然后,此条目被添加到/etc/barbican/policy.json
中。后续小节中将详细介绍策略。 -
BarbicanSimpleCryptoKek
- 如果没有指定密钥加密密钥(KEK),则由 director 生成密钥加密密钥(KEK)。
-
在
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),否则您不会看到
创建者
角色。将用户分配到
创建者
角色并指定相关项目。在本例中,project_a
项目中名为user1
的用户添加到creator
角色中:openstack role add --user user1 --project project_a 4e9c560c6f104608948450fbf316f9d7
验证
创建 test 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 | +---------------+------------------------------------------------------------------------------------+
检索您刚才创建的 secret 的有效负载:
openstack secret get https://192.168.123.163/key-manager/v1/secrets/4cc5ffe0-eea2-449d-9e64-b664d574be53 --payload +---------+-------------+ | Field | Value | +---------+-------------+ | Payload | TestPayload | +---------+-------------+