搜索

1.3. 部署密钥管理器

download PDF

要部署 OpenStack Key Manager,首先为 barbican 服务创建一个环境文件,并使用额外的环境文件重新部署 overcloud。然后,您可以将用户添加到 creator 角色中,以创建和编辑 barbican secret,或者创建在 barbican 中保存 secret 的加密的卷。

注意

此流程将 barbican 配置为使用 simple_crypto 后端。提供了其他后端,如 PKCS#11 需要不同的配置,以及不同的 heat 模板文件,具体取决于使用 HSM。不支持 KMIP、Hashicorp Vault 和 DogTag 等其他后端。

前提条件

  • overcloud 已部署和运行

流程

  1. 在 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)。
  2. 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
  3. 重新运行部署脚本,将更改应用到您的部署:

    $ 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
  4. 检索 creator 角色的 id

    openstack role show creator
    +-----------+----------------------------------+
    | Field     | Value                            |
    +-----------+----------------------------------+
    | domain_id | None                             |
    | id        | 4e9c560c6f104608948450fbf316f9d7 |
    | name      | creator                          |
    +-----------+----------------------------------+
    注意

    除非安装了 OpenStack Key Manager (barbican),否则您不会看到 创建者 角色。

  5. 将用户分配到 创建者 角色并指定相关项目。在本例中,project_a 项目中名为 user1 的用户添加到 creator 角色中:

    openstack role add --user user1 --project project_a 4e9c560c6f104608948450fbf316f9d7

验证

  1. 创建 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                                                                               |
    +---------------+------------------------------------------------------------------------------------+
  2. 检索您刚才创建的 secret 的有效负载:

    openstack secret get https://192.168.123.163/key-manager/v1/secrets/4cc5ffe0-eea2-449d-9e64-b664d574be53 --payload
    +---------+-------------+
    | Field   | Value       |
    +---------+-------------+
    | Payload | TestPayload |
    +---------+-------------+
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.