注意
本文档适用于 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 规范实现。
SSE-S3
这使得密钥管理对用户不可见。它们仍存储在 Vault 中,但由 Ceph 自动创建和删除,并根据需要检索以处理加密或解密数据的请求。
这在 S3 中根据 Amazon SSE-S3 规范实现。
原则上,任何密钥管理服务都可以在此处使用。目前仅实现与 Vault 的集成。
请参阅 HashiCorp Vault 集成。
存储桶加密 API
存储桶加密 API 支持使用 Amazon S3 管理的密钥 (SSE-S3) 或 AWS KMS 客户主密钥 (SSE-KMS) 进行服务器端加密。
请参阅 PutBucketEncryption、GetBucketEncryption 和 DeleteBucketEncryption
自动加密(仅用于测试)
可以在 ceph.conf 中设置 rgw crypt default encryption key,以强制加密所有未另外指定加密模式的对象。
此配置需要一个 base64 编码的 256 位密钥。例如
rgw crypt default encryption key = 4YSmvJtBv0aZ7geVgAsdpRnLBEwWSWlMIGnRS8a9TSA=
重要
此模式仅用于诊断目的!ceph 配置文件不是存储加密密钥的安全方法。以这种方式意外暴露的密钥应被视为已泄露。