第 4 章 加密和验证 OpenStack 服务
您可以使用 barbican 来加密和验证多个 Red Hat OpenStack Platform 服务,如 Block Storage (cinder)加密密钥、块存储卷镜像、Object Storage (swift)对象和 Image Service (glance)镜像。
Nova 在首次使用时格式化加密的卷(如果未加密)。然后,生成的块设备将提供给 Compute 节点。
容器化服务指南
-
不要更新您可能在物理节点的主机操作系统上找到的任何配置文件,例如
/etc/cinder/cinder.conf
。容器化服务不引用此文件。 不要更新容器中运行的配置文件。重启容器后,更改将会丢失。
相反,如果必须更改容器化服务,请更新
/var/lib/config-data/puppet-generated/
中的配置文件,用于生成容器。例如:
-
keystone:
/var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf
-
cinder:
/var/lib/config-data/puppet-generated/cinder/etc/cinder/cinder.conf
-
nova:
/var/lib/config-data/puppet-generated/nova_libvirt/etc/nova/nova.conf
重启容器后会应用更改。
-
keystone:
4.1. 加密 Object Storage (swift) at-rest 对象
默认情况下,上传到 Object Storage (swift)的对象存储是未加密的。因此,可以从文件系统中直接访问对象。如果在磁盘被丢弃前没有正确清除磁盘,这可能会带来安全风险。启用 barbican 后,对象存储服务(swift)可以透明地加密和解密存储(at-rest)对象。at-rest 加密与 in-transit 加密不同,它在存储在磁盘上时引用被加密的对象。
Swift 以透明的方式执行这些加密任务,对象在上传到 swift 时会自动加密,然后在提供给用户时自动解密。此加密和解密使用相同的(symmetric)密钥进行,该密钥存储在 barbican 中。
在启用了加密并将数据添加到 swift 集群后,您无法禁用加密,因为数据现在以加密状态存储。因此,如果禁用了加密,数据将无法被读取,直到您使用相同的密钥重新启用加密为止。
前提条件
- OpenStack Key Manager 已安装并启用
流程
-
在您的环境文件中包含
SwiftEncryptionEnabled: True
参数,然后使用/home/stack/overcloud_deploy.sh
重新运行openstack overcloud deploy
。 确认 swift 已配置为使用 at-rest 加密:
$ crudini --get /var/lib/config-data/puppet-generated/swift/etc/swift/proxy-server.conf pipeline-main pipeline pipeline = catch_errors healthcheck proxy-logging cache ratelimit bulk tempurl formpost authtoken keystone staticweb copy container_quotas account_quotas slo dlo versioned_writes kms_keymaster encryption proxy-logging proxy-server
其结果应包括用于
加密
的条目。