MinIO 密钥加密服务

本网站提供有关信息MinIO’s 密钥加密服务 (KES) 项目。

文档内容包括:

  • 架构与配置指南
  • 最佳实践
  • 通用文档

MinIO 已于即日起弃用并归档 Community KES 项目Release 2025-03-12T09-35-18Z.

MinIO Enterprise 用户应计划迁移至 AIStor KES 以获取持续的维护更新。 如需进一步指导,请在 SUBNET 中提交问题。

MinIO 还提供了AIStor Key Manager作为迁移路径。

本文档仅作为历史参考资料提供。

为什么选择 KES

KES 是一个无状态分布式密钥管理系统,适用于高性能应用场景。 KES 充当了在容器中运行的现代应用程序与Kubernetes和集中式密钥管理服务(KMS)。 默认情况下,我们将KES设计为简单、可扩展且安全。 与其他服务相比,KES具有简化的配置选项,不需要深入理解安全密钥管理或密码学原理。

如果您是 KES 的新用户,可以从以下页面开始:

KES访问控制

KES使用双向TLS认证(mTLS)来对向KES服务器发出请求的客户端执行认证和授权。

认证

客户端和服务器都向其对等方出示其x.509证书和相应的私钥。 只有当客户端证书有效且通过认证时,服务器才会接受连接:

  • 一个"有效"证书是指格式正确且当前有效(即未过期)的证书。

    使用 mTLS 进行身份验证还需要以下条件扩展密钥用法客户端和服务器的扩展。

    • 客户端认证 (extendedKeyUsage = clientAuth)
    • 服务器认证 (extendedKeyUsage = serverAuth)
  • 一个"真实"的证书由受信任的证书颁发机构(CA)签发。 客户端和服务器必须将对方证书的CA包含在其本地系统信任存储中。

您可以使用以下命令启动 KES 服务器:kes server --auth在测试或早期开发期间使用不受信任或自签名证书执行mTLS的选项。

MinIO强烈建议在生产环境中仅允许使用受信任的证书。

授权

KES 使用基于策略的访问控制(PBAC)来确定给定客户端有权执行哪些操作。 每个策略包含一个或多个身份标识,其中每个身份标识对应一个 x.509 证书的 SHA-256 哈希值。 只有在满足以下条件时,服务器才允许客户端执行所请求的操作:

  • KES服务器上的策略包含客户端身份。
  • 该策略明确允许所请求的操作。

如果KES服务器上不存在此类策略or如果策略未明确允许所请求的操作,KES服务器将拒绝客户端的请求。

KES Policies

KES采用基于策略的访问控制(PBAC),其中策略描述了经过身份验证的客户端可以执行的操作。

以下YAMLdocument provides an example of the :kesconf:policyKES服务器配置文档的章节。 策略minio-sse包含支持 MinIO 服务端加密的相应 :API 端点:

policy:
   minio-sse:
      paths:
      - /v1/key/create/*
      - /v1/key/generate/*
      - /v1/key/decrypt/*
      - /v1/key/delete/*
      identities:
      - <SHA-256 HASH>
  • 数组中的每个元素policy.policyname.pathsarray 表示一个API endpoint策略授予访问权限的。

  • 数组中的每个元素policy.policyname.identitiesarray 表示客户端提供的 x.509 证书的 SHA-256 哈希值。

    使用kes identity of计算客户端 X.509 证书标识哈希的命令

策略与身份具有一对多关系,一个策略可以包含多个身份。然而一个给定的身份在同一时间最多只能关联一个策略。

KES服务器提供了两种配置策略的方法:

  • ThepolicyKES 的 section配置文件列出 KES 服务器的持久化策略。

  • Thekes policycommand 支持创建短暂的KES 服务器的策略。 该kes identity命令支持短暂的修改与 KES 服务器策略关联的身份信息。

    使用任一方式创建或修改的策略kes policy or kes identity重启 KES 服务器后消失。

每个 KES 服务器都有自己的配置文件,从中获取所有持久化策略。 在分布式 KES 部署中,每个服务器基于其配置文件拥有独立且不同的策略-身份集合。 这可能导致一个身份根据客户端连接的 KES 服务器不同而关联到不同的策略。

在允许KES服务器包含不同策略时需谨慎,因为这可能导致服务器间客户端加密行为不一致。 MinIO强烈建议在分布式KES部署中同步配置文件变更。


指南

教程

支持的 KMS 目标

外部引用

API Documentation

MinIO 博客文章