3.4. 静止加密(Encryption at Rest)
Red Hat Ceph Storage 在一些情况下支持对静止数据(data at rest)进行加密:
-
Ceph Storage Cluster: Ceph Storage 集群支持对 OSD 的 Linux 统一密钥设置或 LUKS 加密,以及对应的日志、write-ahead 日志和元数据数据库。在这种情况下,Ceph 会加密所有静止数据,无论是否是 Ceph 块设备、Ceph Filesystem、Ceph Object Storage 集群还是在
librados上构建的自定义应用的数据。 - Ceph 对象网关: Ceph 存储集群支持客户端对象加密。当 Ceph 对象网关加密对象时,它们独立于 Red Hat Ceph Storage 集群进行加密。此外,传输的数据也以加密的形式在 Ceph 对象网关和 Ceph 存储集群之间。
Ceph Storage 集群加密
Ceph 存储集群支持加密存储在 OSD 上的数据。Red Hat Ceph Storage 可以使用 lvm 对逻辑卷进行加密,方法是指定 dmcrypt ;即 ceph-volume 调用的 lvm,加密 OSD 的逻辑卷而不是其物理卷,并可使用同一 OSD 密钥对非 LVM 设备进行加密。加密逻辑卷可以实现更大的灵活性。
Ceph 使用 LUKS v1 而不是 LUKS v2,因为 LUKS v1 在 Linux 发行版之间拥有广泛的支持。
在创建 OSD 时,LVM 将生成一个 secret 密钥,并通过 stdin 在 JSON 有效负载中安全地将密钥传递给 Ceph Monitor。加密密钥的属性名称为 dmcrypt_key。
系统管理员必须明确启用加密。
默认情况下,Ceph 不会加密存储在 OSD 中的数据。系统管理员必须在 Ceph Ansible 中启用 dmcrypt。如需了解有关在 group_vars/osds.yml 文件中设置 dmcrypt 选项的详细信息,请参见Red Hat Ceph Storage 安装指南的附录 OSD Ansible 设置。
LUKS 和 dmcrypt 仅针对静态数据的地址加密,而不是对传输中的数据进行加密。
Ceph 对象网关加密
Ceph 对象网关支持使用其 S3 API 与客户提供的密钥进行加密。在使用客户提供的密钥时,S3 客户端会传递加密密钥以及每个请求来读取或写入加密数据。客户负责管理这些密钥。客户必须记住用于加密每个对象的 Ceph 对象网关的关键是什么。
详情请参阅 Red Hat Ceph Storage Developer Guide 中的 S3 API 服务器端加密。