文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

对象服务器端加密

MinIO 服务端加密(SSE)在写入操作过程中保护对象,使客户端能够利用服务器处理能力在存储层保护对象(静态加密)。 SSE 还为安全锁定和擦除方面的法规与合规要求提供了关键功能。

MinIO SSE 使用MinIO Key Encryption Service (KES)以及一个外部密钥管理服务(KMS),用于大规模执行安全加密操作。 MinIO 还支持客户端管理的密钥管理,即应用程序全权负责创建和管理用于 MinIO SSE 的加密密钥。

MinIO SSE 在功能和 API 上与AWS Server-Side Encryption并支持以下加密策略:

MinIO 支持使用存储在外部的外部密钥(EK)为写入存储桶的所有对象启用自动 SSE-KMS 加密KMS客户端可以覆盖存储桶默认设置EK通过在写入操作中指定显式键。

对于没有自动SSE-KMS加密的存储桶,客户端可以指定一个EK作为写入操作的一部分。

MinIO 在启用服务器端加密时会对后端数据进行加密。 一旦启用 SSE-KMS 加密,您将无法禁用它。

与SSE-S3和SSE-C相比,SSE-KMS提供了更细粒度和可定制的加密功能,因此建议优先选择SSE-KMS而非其他支持的加密方法。

有关在本地(非生产)MinIO部署中启用SSE-KMS的教程,请参阅快速入门对于生产环境的 MinIO 部署,请使用以下指南之一:

MinIO 支持启用自动 SSE-S3 加密,对所有写入存储桶的对象进行加密EK存储在外部KMSMinIO SSE-S3 支持 EK对于整个部署。

对于未启用自动 SSE-S3 加密的存储桶,客户端可以在写入操作中请求 SSE 加密作为替代方案。

MinIO 在启用服务器端加密时会对后端数据进行加密。 一旦启用 SSE-KMS 加密,您将无法禁用它。

对于在本地(非生产)MinIO部署中启用SSE-s3的教程,请参阅快速入门对于生产环境的 MinIO 部署,请使用以下指南之一:

Clients specify anEK作为对象写入操作的一部分。 MinIO 使用指定的EK执行 SSE-S3。

SSE-C不支持存储桶默认加密设置,并要求客户端执行所有密钥管理操作。

MinIO SSE 需要启用网络加密(TLS).

安全擦除与锁定

MinIO 需要访问加密密钥(EK)外部密钥管理系统 (KMS) 作为 SSE 操作的一部分,用于解密对象。您可以通过禁用用于加密的 EK 或 KMS 访问权限,利用此依赖关系安全擦除对象并锁定对象访问。

通用策略包括但不限于:

  • 密封KMS这样它就无法被 MinIO 服务器访问了。这会锁定所有受任何EK存储在 KMS 上。只要 KMS 保持密封状态,加密的对象就保持不可读状态。

  • 密封/卸载一个EK这会锁定所有受该EK保护的SSE-KMS或SSE-S3加密对象。只要CMK保持密封状态,这些加密对象就保持不可读状态。

  • 删除一个EK这将使受该EK保护的所有SSE-KMS或SSE-S3加密对象永久不可读。删除EK与删除数据的组合操作可以满足关于数据安全删除的监管要求。

    删除一个EK通常不可逆。在有意删除主密钥之前,请务必极其谨慎。

更多信息,请参阅: