注意

本文档适用于 Ceph 的开发版本。

加密

New in version Luminous.

Ceph 对象网关支持上传对象的服务器端加密,并提供 3 种用于管理加密密钥的选项。服务器端加密意味着数据以未加密形式通过 HTTP 发送,而 Ceph 对象网关将该数据以加密形式存储在 Ceph 存储集群中。

注意

服务器端加密请求必须通过安全的 HTTPS 连接发送,以避免以明文形式发送机密信息。如果使用代理进行 SSL 终止,则必须启用 rgw trust forwarded https,转发的请求才会被信任为安全。

注意

服务器端加密密钥必须是 256 位长且经过 base64 编码。

客户提供的密钥

在此模式下,客户端在读取或写入加密数据的每个请求中传递一个加密密钥。客户端负责管理这些密钥并记住用于加密每个对象的密钥。

这在 S3 中根据 Amazon SSE-C 规范实现。

由于所有密钥管理都由客户端处理,因此不需要特殊的 Ceph 配置来支持此加密模式。

密钥管理服务

在此模式下,管理员将密钥存储在安全的密钥管理服务中。然后,Ceph 对象网关会按需检索这些密钥,以处理加密或解密数据的请求。

这在 S3 中根据 Amazon SSE-KMS 规范实现。

原则上,任何密钥管理服务都可以在此处使用。目前已实现与 BarbicanVaultKMIP 的集成。

请参阅 OpenStack Barbican 集成HashiCorp Vault 集成KMIP 集成

SSE-S3

这使得密钥管理对用户不可见。它们仍存储在 Vault 中,但由 Ceph 自动创建和删除,并根据需要检索以处理加密或解密数据的请求。

这在 S3 中根据 Amazon SSE-S3 规范实现。

原则上,任何密钥管理服务都可以在此处使用。目前仅实现与 Vault 的集成。

请参阅 HashiCorp Vault 集成

存储桶加密 API

存储桶加密 API 支持使用 Amazon S3 管理的密钥 (SSE-S3) 或 AWS KMS 客户主密钥 (SSE-KMS) 进行服务器端加密。

请参阅 PutBucketEncryptionGetBucketEncryptionDeleteBucketEncryption

自动加密(仅用于测试)

可以在 ceph.conf 中设置 rgw crypt default encryption key,以强制加密所有未另外指定加密模式的对象。

此配置需要一个 base64 编码的 256 位密钥。例如

rgw crypt default encryption key = 4YSmvJtBv0aZ7geVgAsdpRnLBEwWSWlMIGnRS8a9TSA=

重要

此模式仅用于诊断目的!ceph 配置文件不是存储加密密钥的安全方法。以这种方式意外暴露的密钥应被视为已泄露。

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入