KES 是一个云原生分布式密钥管理和加密服务器,旨在为现代应用程序提供大规模安全保障。
KES 是一个可水平扩展的分布式密钥管理服务器。它既可以作为边缘服务器运行在应用附近,减少对中央密钥管理系统(KMS)的延迟和负载,也可以作为中央密钥管理服务器。边缘服务器是靠近应用的独立无状态节点,可以自动扩缩容。中央 KES 服务器或集群是安全存储和管理加密密钥与机密的有状态系统。
KES 服务器和 CLI 可通过单一二进制文件、容器镜像获取,或从源代码构建。
shbrew install minio/stable/kes
通过以下命令拉取最新版本:
docker pull minio/kes
| 操作系统 | 架构 | 二进制文件 |
|---|---|---|
| Linux | amd64 | https://github.com/minio/kes/releases/latest/download/kes-linux-amd64 |
| Linux | arm64 | https://github.com/minio/kes/releases/latest/download/kes-linux-arm64 |
| Linux | ppc64le | https://github.com/minio/kes/releases/latest/download/kes-linux-ppc64le |
| Linux | s390x | https://github.com/minio/kes/releases/latest/download/kes-linux-s390x |
| Apple M1 | arm64 | https://github.com/minio/kes/releases/latest/download/kes-darwin-arm64 |
| Apple | amd64 | https://github.com/minio/kes/releases/latest/download/kes-darwin-amd64 |
| Windows | amd64 | https://github.com/minio/kes/releases/latest/download/kes-windows-amd64.exe |
你也可以使用 https://jedisct1.github.io/minisign/ 验证二进制文件,方法是下载对应的 https://github.com/minio/kes/releases/latest 签名文件,然后运行:
minisign -Vm kes-<操作系统>-<架构> -P RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav
通过 Go 工具链下载并安装二进制文件:
shgo install github.com/minio/kes/cmd/kes@latest
我们在 https://play.min.io:7373 运行了一个公共 KES 实例供你实验。你可以通过 KES CLI 或 cURL 与该实例交互。或者,你也可以在不到五分钟内搭建自己的 KES 服务器。
1. 配置 CLI
将 KES CLI 指向 https://play.min.io:7373 的 KES 服务器,并使用以下 API 密钥:
shexport KES_SERVER=https://play.min.io:7373 export KES_API_KEY=kes:v1:AD9E7FSYWrMD+VjhI6q545cYT9YOyFxZb7UnjEepYDRc
2. 创建密钥
接下来,创建一个新的根加密密钥(例如 my-key):
kes key create my-key
注意:如果密钥已存在,创建操作将失败并显示
key already exist。
3. 生成 DEK
现在,你可以使用该密钥派生新的数据加密密钥(DEK):
shkes key dek my-key
DEK 的明文部分将被应用程序用于加密数据,密文部分将与加密数据一起存储,以便将来解密。
如需快速启动设置,请查看我们的 https://github.com/minio/kes/wiki/Filesystem-Keystore%E3%80%82%E6%9B%B4%E5%A4%9A%E5%8F%82%E8%80%83%E8%AF%B7%E6%9F%A5%E7%9C%8B%E6%88%91%E4%BB%AC%E7%9A%84%E5%AF%86%E9%92%A5%E5%BA%93 https://github.com/minio/kes/wiki#guides%E3%80%82
1. 获取管理员凭证
首先,你需要下载私钥和证书,以管理员身份认证到 KES 服务器:
shcurl -sSL --tlsv1.2 \ -O 'https://raw.githubusercontent.com/minio/kes/master/root.key' \ -O 'https://raw.githubusercontent.com/minio/kes/master/root.cert'
2. 创建密钥
接下来,创建一个新的根加密密钥(例如 my-key):
shcurl -sSL --tlsv1.3 \ --key root.key \ --cert root.cert \ -X POST 'https://play.min.io:7373/v1/key/create/my-key'
注意:如果密钥已存在,创建操作将失败并显示
key already exist。
3. 生成 DEK
现在,你可以使用该密钥派生新的数据加密密钥(DEK):
shcurl -sSL --tlsv1.3 \ --key root.key \ --cert root.cert \ --data '{}' \ -X POST 'https://play.min.io:7373/v1/key/generate/my-key'
DEK 的明文部分将被应用程序用于加密数据,密文部分将与加密数据一起存储,以便将来解密。
4. 更多参考
完整的 REST API 端点列表请参考 KES https://github.com/minio/kes/wiki/Server-API%E3%80%82
如需了解更多关于 KES 的信息,请查看我们的 https://github.com/minio/kes/wiki%EF%BC%9A
insufficient permissions 错误这意味着你使用的 KES 身份无权执行特定操作(如创建或列出密钥)。
KES https://github.com/minio/kes/blob/6452cdc079dfae54e4a46102cb4622c80b99776f/server-config.yaml#L8 可以执行任何通用 API 操作。使用管理员身份执行通用 API 操作时,不应出现 not authorized: insufficient permissions 错误。
除管理员身份外,KES 支持基于策略的访问控制模型。以下两种情况会导致 not authorized: insufficient permissions 错误:
使用未分配任何策略的 KES 身份:KES 拒绝未知身份发出的请求。
解决方法是为该身份分配策略,参考 https://github.com/minio/kes/blob/6452cdc079dfae54e4a46102cb4622c80b99776f/server-config.yaml#L79-L88%E3%80%82
使用已分配策略但策略不允许甚至拒绝 API 调用的 KES 身份:
这种情况下,需在分配给该身份的策略中授予 API 权限。参考 https://github.com/minio/kes/wiki/Server-API#api-overview%E3%80%82%E4%BE%8B%E5%A6%82%EF%BC%8C%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5%E6%97%B6%E5%BA%94%E5%85%81%E8%AE%B8 /v1/key/create/<key-name>,其中 <key-name> 可以是特定密钥名(如 my-key-1)或允许任意密钥名的模式(如 my-key*)。
注意:拒绝规则优先于允许规则。因此,需确保任何拒绝模式不会意外匹配你的 API 请求。
KES 的使用受 AGPLv3 许可证约束,详情参见 LICENSE 文件。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务