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