第 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

    重启容器后会应用更改。

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 已安装并启用

流程

  1. 在您的环境文件中包含 SwiftEncryptionEnabled: True 参数,然后使用 /home/stack/overcloud_deploy.sh 重新运行 openstack overcloud deploy
  2. 确认 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

    其结果应包括用于加密的条目。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat, Inc.