OpenStack——密钥管理(barbican)服务介绍与安装

OpenStack——密钥管理(barbican)服务介绍与安装

OpenStack 密钥管理器(Barbican)是一个用于管理和保护敏感数据的工具。它的主要功能是存储、生成和分发加密密钥、证书和其他敏感信息。 在计算机领域中,密钥是用于加密和解密数据的重要组成部分。加密可以帮助保护数据的机密性,确保只有授权的用户能够访问和解读数据。然而,密钥的管理和保护是一个复杂的任务,因为密钥本身也是敏感的信息,需要保证其机密性和完整性。 Barbican 提供了一个集中化的密钥管理和保护解决方案,以帮助组织更好地管理密钥。它提供了以下功能:

  1. 密钥存储:Barbican 提供了一个安全的存储库,用于存储和管理密钥、证书和其他敏感数据。这样,用户可以将密钥和其他敏感信息存储在一个安全的地方,而不是分散在多个系统中。
  2. 密钥生成:Barbican 可以生成随机、安全的密钥,以供用户使用。这些密钥可以用于加密和解密数据,确保数据在传输和存储过程中的安全性。
  3. 密钥分发:Barbican 可以安全地将密钥分发给需要使用它们的系统和应用程序。它提供了一种安全的方式来共享密钥,以确保只有授权的用户能够访问和使用密钥。
  4. 密钥轮换:Barbican 还提供了密钥轮换功能,可以定期生成新的密钥,并替换旧的密钥。这样可以增加密钥的安全性,减少密钥被破解的风险。

安装和配置(controller)

官方文档

准备

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

(1)创建数据库

①连接数据库

[root@controller ~]# mysql -uroot -p000000

②创建barbican数据库

MariaDB [(none)]> CREATE DATABASE barbican;

③授权

MariaDB [(none)]> GRANT ALL PRIVILEGES ON barbican.* TO 'barbican'@'localhost' IDENTIFIED BY '000000';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON barbican.* TO 'barbican'@'%' IDENTIFIED BY '000000';

④退出数据库

(2)加载 admin user 的环境变量

[root@controller ~]# source admin-openrc.sh

(3)创建服务凭证

①创建barbican用户

[root@controller ~]# openstack user create --domain default --password 000000 barbican
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 7d982c41976147c6a0b0d8339c408acd |
| name                | barbican                         |
| options             | {
    
    }                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

admin为用户添加角色barbican

扫描二维码关注公众号,回复: 16510308 查看本文章
[root@controller ~]# openstack role add --project service --user barbican admin

③创建creator角色

[root@controller ~]#  openstack role create creator
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | None                             |
| domain_id   | None                             |
| id          | 3589b190b9ff4ef582a0417ba0f055e6 |
| name        | creator                          |
| options     | {
    
    }                               |
+-------------+----------------------------------+

creator为用户添加角色barbican

[root@controller ~]# openstack role add --project service --user barbican creator

⑤创建barbican服务实体

[root@controller ~]# openstack service create --name barbican --description "Key Manager" key-manager
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Key Manager                      |
| enabled     | True                             |
| id          | 623e7b3cb14e4bffaaeff7424950719e |
| name        | barbican                         |
| type        | key-manager                      |
+-------------+----------------------------------+

(4)创建密钥管理器服务 API 端点

[root@controller ~]# openstack endpoint create --region RegionOne key-manager public http://controller:9311
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 00a78500310445bd8f728884d0acebac |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 6ba9579e9acd449a904327c0cd6efac8 |
| service_name | barbican                         |
| service_type | key-manager                      |
| url          | http://controller:9311           |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne key-manager internal http://controller:9311
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 8a0a51041d494daea036b40fd840cc17 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 6ba9579e9acd449a904327c0cd6efac8 |
| service_name | barbican                         |
| service_type | key-manager                      |
| url          | http://controller:9311           |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne key-manager admin http://controller:9311
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 71d5a7a9b394408c945d209fc55552d1 |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 6ba9579e9acd449a904327c0cd6efac8 |
| service_name | barbican                         |
| service_type | key-manager                      |
| url          | http://controller:9311           |
+--------------+----------------------------------+

安装和配置组件

(1)安装软件包

[root@controller ~]# yum install openstack-barbican-api cryptsetup -y

(2)配置文件

编辑/etc/barbican/barbican.conf文件并完成以下操作:

[DEFAULT]部分中

[DEFAULT]
sql_connection = mysql+pymysql://barbican:000000@controller/barbican
transport_url = rabbit://openstack:000000@controller
bind_host = 0.0.0.0
bind_port = 9311
host_href = http://controller:9311
log_file = /var/log/barbican/api.log

[keystone_authtoken]部分中

[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 = 000000

[oslo_policy]部分中

[oslo_policy]
policy_file = /etc/barbican/policy.json
policy_default_rule = default

[secretstore]部分中

[secretstore]
namespace = barbican.secretstore.plugin
enabled_secretstore_plugins = store_crypto

[crypto]部分中

[crypto]
namespace = barbican.crypto.plugin
enabled_crypto_plugins = simple_crypto

[simple_crypto_plugin]

[simple_crypto_plugin]
kek = 'YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY='

(3)同步数据库

[root@controller ~]# su -s /bin/sh -c "barbican-manage db upgrade" barbican

完成安装

[root@controller ~]# systemctl restart openstack-barbican-api && systemctl enable openstack-barbican-api

验证

(1)加载环境变量

[root@controller ~]# source admin-openrc.sh

(2)创建密钥

[root@controller ~]# openstack secret store --name secret01 --payload secretkey
+---------------+------------------------------------------------------------------------+
| Field         | Value                                                                  |
+---------------+------------------------------------------------------------------------+
| Secret href   | http://controller:9311/v1/secrets/f9fa0edf-c2b3-4482-818a-7418c7226f66 |
| Name          | secret01                                                               |
| Created       | None                                                                   |
| Status        | None                                                                   |
| Content types | None                                                                   |
| Algorithm     | aes                                                                    |
| Bit length    | 256                                                                    |
| Secret type   | opaque                                                                 |
| Mode          | cbc                                                                    |
| Expiration    | None                                                                   |
+---------------+------------------------------------------------------------------------+

获取一个指定密钥的信息

[root@controller ~]# openstack secret get http://controller:9311/v1/secrets/f9fa0edf-c2b3-4482-818a-7418c7226f66
+---------------+------------------------------------------------------------------------+
| Field         | Value                                                                  |
+---------------+------------------------------------------------------------------------+
| Secret href   | http://controller:9311/v1/secrets/f9fa0edf-c2b3-4482-818a-7418c7226f66 |
| Name          | secret01                                                               |
| Created       | 2023-07-02T10:43:36+00:00                                              |
| Status        | ACTIVE                                                                 |
| Content types | {
    
    u'default': u'text/plain'}                                            |
| Algorithm     | aes                                                                    |
| Bit length    | 256                                                                    |
| Secret type   | opaque                                                                 |
| Mode          | cbc                                                                    |
| Expiration    | None                                                                   |
+---------------+------------------------------------------------------------------------+

获取一个指定密钥的明文内容

[root@controller ~]# openstack secret get http://controller:9311/v1/secrets/f9fa0edf-c2b3-4482-818a-7418c7226f66 --payload
+---------+-----------+
| Field   | Value     |
+---------+-----------+
| Payload | secretkey |
+---------+-----------+

猜你喜欢

转载自blog.csdn.net/qq_52089863/article/details/131503907
今日推荐