入门

本快速入门将向您展示如何设置一个本地 KES 服务器,该服务器将密钥存储在内存中。

非永久性
内存密钥库将在重新启动时丢失所有状态。它仅应用于测试目的。
K E S C l i e n t K E S S e r v e r I n - M e m o r y

快速入门

开发模式

对于快速开发测试服务器,请使用

kes server --dev

这将在 127.0.0.1:7373 上启动一个 KES 服务器,并将密钥存储在内存中。

  1. 安装 KES 二进制文件

    您可以通过以下方式安装 KES 二进制文件:

    • 下载预编译的 **二进制版本**
    • 拉取 **Docker** 镜像
    • 发出 **Homebrew** 命令
    • 使用您的 Go 工具链从 **源代码** 编译

    请从以下选项卡中选择您想要使用的安装方法。

    通过在提示符或终端中运行以下命令确认命令可用性

    kes --help
    

    您可能需要根据您的操作系统结构和 PATH 调整命令,例如使用 ./kes --help

  2. 生成 KES 服务器私钥和证书

    为 KES 服务器生成 TLS 私钥和证书。此密钥用于域名验证。

    KES 服务器 默认情况下是安全的,并且只能与 TLS 一起运行。在本指南中,为了简单起见,我们使用自签名证书。

    以下命令会生成一个新的 TLS 私钥 (private.key) 和一个为 IP 127.0.0.1 和 DNS 名称 localhost 发行的自签名 X.509 证书 (public.crt)

    $ kes identity new --ip "127.0.0.1" --key "private.key" --cert "public.crt" localhost
    
      Private key:  private.key
      Certificate:  public.crt
      Identity:     2e897f99a779cf5dd147e58de0fe55a494f546f4dcae8bc9e5426d2b5cd35680
    
    现有密钥和证书
    如果您已经有 TLS 私钥和证书(例如来自 WebPKI 或内部证书颁发机构),则可以使用它们。请记住调整 tls 配置部分。
  3. 生成客户端凭据

    客户端应用程序需要凭据才能访问 KES 服务器。从客户端的密钥和证书生成 API 密钥,以验证客户端应用程序到 KES 服务器。

    以下命令为 MyApp 生成一个新的 TLS 私钥/公钥对。

    $ kes identity new --key=client.key --cert=client.crt MyApp
    
      Private key:  client.key
      Certificate:  client.crt
      Identity:     02ef5321ca409dbc7b10e7e8ee44d1c3b91e4bf6e2198befdebee6312745267b
    

    标识 02ef5321ca409dbc7b10e7e8ee44d1c3b91e4bf6e2198befdebee6312745267bclient.crt 中公钥的唯一指纹。您可以随时重新计算指纹。

    $ kes identity of client.crt
    
      Identity:  02ef5321ca409dbc7b10e7e8ee44d1c3b91e4bf6e2198befdebee6312745267b
    
  4. 配置 KES 服务器

    创建 KES 服务器配置文件:config.yml。确保 policy 部分中的标识与您的 client.crt 标识匹配。

    address: 0.0.0.0:7373 # Listen on all network interfaces on port 7373
    
    admin:
      identity: 02ef5321ca409dbc7b10e7e8ee44d1c3b91e4bf6e2198befdebee6312745267b # The client.crt identity
    
    tls:
      key: private.key    # The KES server TLS private key
      cert: public.crt    # The KES server TLS certificate
    
  5. 启动 KES 服务器

    启动 KES 服务器实例。

    kes server --config config.yml --auth off
    

KES CLI 访问

  1. 设置 KES_SERVER 端点

    此变量告诉 KES CLI 访问哪个 KES 服务器。

    export KES_SERVER=https://127.0.0.1:7373
    
  2. 使用客户端凭据

    这些变量告诉 KES CLI 使用哪些凭据访问 KES 服务器。

    export KES_CLIENT_CERT=client.crt
    
    export KES_CLIENT_KEY=client.key
    
  3. 执行操作

    现在,我们可以执行任何 API 操作。由于我们使用的是管理员标识,因此不必担心策略权限。

    kes key create my-key-1
    

    然后,我们可以使用该密钥生成新的数据加密密钥。

    $ kes key dek my-key-1
    {
      plaintext : UGgcVBgyQYwxKzve7UJNV5x8aTiPJFoR+s828reNjh0=
      ciphertext: eyJhZWFkIjoiQUVTLTI1Ni1HQ00tSE1BQy1TSEEtMjU2IiwiaWQiOiIxMTc1ZjJjNDMyMjNjNjNmNjY1MDk5ZDExNmU3Yzc4NCIsIml2IjoiVHBtbHpWTDh5a2t4VVREV1RSTU5Tdz09Iiwibm9uY2UiOiJkeGl0R3A3bFB6S21rTE5HIiwiYnl0ZXMiOiJaaWdobEZrTUFuVVBWSG0wZDhSYUNBY3pnRWRsQzJqWFhCK1YxaWl2MXdnYjhBRytuTWx0Y3BGK0RtV1VoNkZaIn0=
    }
    

升级 KES

要升级 KES,请按照入门步骤操作,并在每个 KES 服务器节点上将 KES 二进制文件替换为较新版本。

由于 KES 处理密文的方式发生了变化,因此在升级到 2024-02-29T08-12-28Z 或更高版本后,无法回退到早期版本。MinIO 建议在升级生产环境之前,始终在较低的环境(如登台或开发环境)中进行测试。

参考