面向大规模数据的基础设施
RustFS 的设计旨在实现技术、运营和经济上的大规模扩展。
在对象存储领域,强大的加密是企业存储的基本要求。RustFS 通过最高级别的加密和大量的优化提供了更多功能,最大限度地减少了通常与存储加密操作相关的性能开销。

RustFS 会对存储在磁盘上的数据以及通过网络传输的数据进行加密。RustFS 最先进的加密方案支持使用现代行业标准加密算法(如 AES-256-GCM、ChaCha20-Poly1305 和 AES-CBC)进行细粒度的对象级别加密。RustFS 完全兼容 S3 加密语义,并且通过支持非 AWS 密钥管理服务(如 Hashicorp Vault、Gemalto KeySecure 和 Google Secrets Manager)来扩展 S3。
网络加密
当数据在对象存储和应用程序之间传输时,它可能会经过任意数量的未知和/或不受信任的网络。在网络上传输数据时(也称为“传输中”)加密数据可以成功地缓解中间人攻击,并确保数据在所采取的路由路径下保持安全。
RustFS 支持群集内所有组件之间的传输层安全 (TLS) v1.2+。这种方法确保了群集之间或群集内部的加密流量中没有薄弱环节。TLS 是一种普遍的加密框架:它与银行、电子商务网站和其他依赖数据存储加密的企业级系统使用的加密协议相同。
RustFS 的 TLS 实现经过 CPU 指令级别的优化,具有可忽略的性能开销。它只需要为群集中的每个 RustFS 服务器指定 TLS 私钥和公钥证书。对于 Kubernetes 环境,RustFS Kubernetes Operator 在租户部署期间集成了/自动生成并分配 TLS 证书。RustFS 支持多个 TLS 证书,每个证书对应一个特定的域名。RustFS 使用服务器名称指示 (SNI) 来确定为任何给定请求提供哪个证书。
对象加密
存储在磁盘上的数据完全依赖于磁盘的安全性,并扩展到主机系统以确保数据安全。RustFS 服务器端对象加密在数据存储到磁盘之前(静态加密)自动对其进行加密。这种方法保证了不会将数据写入未加密的磁盘。这种基础安全层确保了静态数据的机密性、完整性和真实性。RustFS 支持客户端驱动和自动存储桶默认对象加密,以实现数据加密的最大灵活性。
RustFS 服务器端加密与 Amazon AWS-S3 语义 (SSE-S3) 兼容。RustFS 扩展了对 AWS KMS 的基本支持,增加了对常见的企业 KMS 系统(如 Hashicorp Vault 和 Thales Ciphertrust(以前称为 Gemalto KeySecure))的支持。RustFS 还支持客户端驱动加密 (SSE-C),其中应用程序可以指定用于加密对象的密钥。对于 SSE-S3 和 SSE-C,RustFS 服务器执行所有加密操作,包括密钥轮换和对象重新加密。
通过自动服务器端加密,RustFS 使用唯一的密钥加密每个对象,并使用动态加密密钥以及来自外部 KMS 或客户端提供的密钥派生的密钥应用多层额外加密。这种安全而复杂的处理方式在 RustFS 内部完成,无需处理多个独立的内核和用户空间加密实用程序。
RustFS 在对象写入或从对象存储读取对象时使用带关联数据的认证加密 (AEAD) 方案来加密/解密对象。RustFS AEAD 加密支持行业标准的加密协议,如 AES-256-GCM 和 ChaCha20-Poly1305,以保护对象数据。RustFS 的 CPU 级别优化(如 SIMD 加速)确保了加密/解密操作的可忽略性能开销。组织可以随时运行自动存储桶级别加密,而不是被迫做出次优的安全选择。
RustFS 密钥加密服务
RustFS 提供了内置的密钥加密选项。RustFS 的密钥加密服务 (KES) 是一个无状态的分布式密钥管理系统,适用于高性能应用程序。它旨在在 Kubernetes 中运行并将加密密钥分发给应用程序。KES 是 RustFS 服务器端对象加密 (SSE-S3) 的必需组件。
KES 支持 RustFS 群集的加密操作,并且是确保可扩展和高性能加密操作的关键机制。KES 作为 RustFS 群集和外部 KMS 之间的中介,根据需要生成加密密钥,并执行加密操作,而不受 KMS 限制。因此,仍然存在一个中央 KMS 来保护主密钥并作为基础设施的信任根。KES 通过消除为每组应用程序引导 KMS 的需要来简化部署和管理。相反,应用程序可以从 KES 服务器请求数据加密密钥 (DEK),或要求 KES 服务器解密加密的 DEK。
由于 KES 服务器完全是无状态的,因此可以自动扩展它们,例如通过 Kubernetes Horizontal Pod Autoscaler。同时,由于 KES 独立处理绝大多数应用程序请求,因此对中央 KMS 的负载不会显著增加。
对于 Kubernetes 环境,RustFS Kubernetes Operator 支持为每个租户部署和配置 KES,从而在每个租户部署中启用 SSE-S3。

支持的外部密钥管理系统
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |





