适用于 Red Hat Enterprise Linux 和 CentOS 的安装和配置

本节描述了如何在 Red Hat Enterprise Linux 7 和 CentOS 7 上安装和配置密钥管理服务。

先决条件

在安装和配置密钥管理服务之前,您必须创建一个数据库、服务凭证和 API 端点。

  1. 要创建数据库,请完成以下步骤

    • 使用数据库访问客户端以 root 用户身份连接到数据库服务器

      # mysql
      
    • 创建 barbican 数据库

      CREATE DATABASE barbican;
      
    • 授予对 barbican 数据库的适当访问权限

      GRANT ALL PRIVILEGES ON barbican.* TO 'barbican'@'localhost' \
        IDENTIFIED BY 'BARBICAN_DBPASS';
      GRANT ALL PRIVILEGES ON barbican.* TO 'barbican'@'%' \
        IDENTIFIED BY 'BARBICAN_DBPASS';
      

      BARBICAN_DBPASS 替换为合适的密码。

    • 退出数据库访问客户端。

      exit;
      
  2. 激活 admin 凭证以访问仅管理员可用的 CLI 命令

    $ source admin-openrc
    
  3. 要创建服务凭证,请完成以下步骤

    • 创建 barbican 用户

      $ openstack user create --domain default --password-prompt barbican
      
    • admin 角色添加到 barbican 用户

      $ openstack role add --project service --user barbican admin
      
    • 创建 creator 角色

      $ openstack role create creator
      
    • creator 角色添加到 barbican 用户

      $ openstack role add --project service --user barbican creator
      
    • 创建 barbican 服务实体

      $ openstack service create --name barbican --description "Key Manager" key-manager
      
  4. 创建密钥管理服务 API 端点

    $ openstack endpoint create --region RegionOne \
      key-manager public http://controller:9311
    $ openstack endpoint create --region RegionOne \
      key-manager internal http://controller:9311
    $ openstack endpoint create --region RegionOne \
      key-manager admin http://controller:9311
    

安装和配置组件

  1. 安装软件包

    # dnf install openstack-barbican-api
    
  1. 编辑 /etc/barbican/barbican.conf 文件并完成以下操作

    • [DEFAULT] 部分,配置数据库访问

      [DEFAULT]
      ...
      sql_connection = mysql+pymysql://barbican:BARBICAN_DBPASS@controller/barbican
      

      BARBICAN_DBPASS 替换为您为密钥管理服务数据库选择的密码。

    • [DEFAULT] 部分中,配置 RabbitMQ 消息队列访问

      [DEFAULT]
      ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

      RABBIT_PASS 替换为您为 RabbitMQ 中的 openstack 帐户选择的密码。

    • [keystone_authtoken] 部分中,配置 Identity 服务访问

      [keystone_authtoken]
      ...
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = barbican
      password = BARBICAN_PASS
      

      BARBICAN_PASS 替换为您为 Identity 服务中的 barbican 用户选择的密码。

      注意

      注释掉或删除 [keystone_authtoken] 部分中的任何其他选项。

  2. 填充密钥管理服务数据库

    如果您希望密钥管理服务在首次启动时自动填充数据库,请在 [DEFAULT] 部分将 db_auto_create 设置为 True。默认情况下,此功能不会激活,您可以手动填充数据库如下

    $ su -s /bin/sh -c "barbican-manage db upgrade" barbican
    

    注意

    忽略此输出中的任何弃用消息。

  3. Barbican 具有插件架构,允许部署者将密钥存储在多种不同的后端密钥存储中。默认情况下,Barbican 配置为将密钥存储在基本的基于文件的密钥存储中。此密钥存储不适用于生产环境。

    有关受支持的插件和配置方法的详细说明,请参阅 配置密钥存储后端

完成安装

  1. 创建 /etc/httpd/conf.d/wsgi-barbican.conf 文件,内容如下

    <VirtualHost [::1]:9311>
        ServerName controller
    
        ## Logging
        ErrorLog "/var/log/httpd/barbican_wsgi_main_error_ssl.log"
        LogLevel debug
        ServerSignature Off
        CustomLog "/var/log/httpd/barbican_wsgi_main_access_ssl.log" combined
    
        WSGIApplicationGroup %{GLOBAL}
        WSGIDaemonProcess barbican-api display-name=barbican-api group=barbican processes=2 threads=8 user=barbican
        WSGIProcessGroup barbican-api
        WSGIScriptAlias / "/usr/lib/python3.9/site-packages/barbican/api/app.wsgi"
        WSGIPassAuthorization On
    </VirtualHost>
    
  2. 启动 Apache HTTP 服务并配置它在系统启动时启动

    # systemctl enable httpd.service
    # systemctl start httpd.service