文档

密钥加密服务设置

MinIO Server 提供三组环境变量,用于管理 MinIO Server 与 Key Encryption Service (KES)、Key Management Service (KMS) 或静态密钥文件的交互方式。 这三组中只能定义一组。 如果定义了多种类型的环境变量组,MinIO 会返回错误。

Note

这些设置不支持通过 mc admin config set 进行配置。

在启动或重启 MinIO 进程之前,请在宿主系统中定义其中任意一组环境变量。 有关如何定义环境变量,请参考操作系统文档。

Important

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

Key Encryption Service

定义以下变量以使用 Key Encryption Service (KES) 连接到 受支持的第三方 Key Management Service 提供商

MINIO_KMS_KES_ENDPOINT

MinIO Key Encryption Service (KES) 进程用于支持 SSE-S3 和 MinIO 后端加密操作的 endpoint。 多个 KES endpoint 使用 , 分隔。

MINIO_KMS_KES_KEY_NAME

KES 服务器上配置的 Key Management system (KMS) 中外部密钥名称,用于执行加密和解密操作。 MinIO 将此密钥用于以下用途:

  • 加密后端数据(IAM、服务器配置)。

  • SSE-KMS 的默认服务端加密密钥。

  • SSE-S3 的服务端加密密钥。

Important

在 MinIO 部署上启用 SSE 后, 会自动使用默认加密密钥对该部署的后端数据进行加密。

MinIO 必须能够访问 KES 和外部 KMS, 才能解密后端并正常启动。 KMS 必须维护并提供对 MINIO_KMS_KES_KEY_NAME 的访问。 之后你不能再禁用 KES, 也不能在后续“撤销”该 SSE 配置。

MINIO_KMS_KES_API_KEY

使用通过 kes identity new 命令获取的 KES API key 与加密服务进行身份认证的首选方式。

此环境变量与 MINIO_KMS_KES_KEY_FILEMINIO_KMS_KES_CERT_FILE 环境变量互斥。

MINIO_KMS_KES_KEY_FILE

MINIO_KMS_KES_CERT_FILE x.509 证书关联的私钥,用于向 KES 服务器进行身份认证。 KES 服务器要求客户端提供证书以执行 mutual TLS (mTLS)。

有关 KES 访问控制的完整文档,请参见 KES wiki

还必须设置 MINIO_KMS_KES_CERT_FILE。 此变量与 MINIO_KMS_KES_API_KEY 互斥。

MINIO_KMS_KES_CERT_FILE

提供给 KES 服务器的 x.509 证书。 KES 服务器要求客户端提供证书以执行 mutual TLS (mTLS)。

KES 服务器会根据证书计算 identity,并将其与已配置策略进行比对。 KES 服务器仅向 minio 服务器授予策略中明确允许的操作访问权限。

有关 KES 访问控制的完整文档,请参见 KES wiki

还必须设置 MINIO_KMS_KES_KEY_FILE。 此变量与 MINIO_KMS_KES_API_KEY 互斥。

MINIO_KMS_KES_CAPATH
Optional

允许使用自签名或第三方 CA 验证 KES 服务器证书。 指定 KES 部署所使用的 CA 证书路径。

如果使用公共证书颁发机构,则不需要此变量。

MINIO_KMS_KES_KEY_PASSWORD
Optional

用于加密和解密 TLS 私钥的密码(如果使用)。

MinIO Key Management Server (KMS)

定义以下变量以使用 MinIO KMS 管理密钥。

MINIO_KMS_SERVER

MinIO Key Management Service (KMS) 进程用于支持 SSE-S3 和 MinIO 后端加密操作的 endpoint。 多个 KMS endpoint 使用 , 分隔。

MINIO_KMS_ENCLAVE

密钥和身份所在的 MinIO KMS Enclave。

MINIO_KMS_SSE_KEY

当调用未指定密钥身份时,用于 SSE-S3 加密的默认密钥。

MINIO_KMS_API_KEY

用于向 MinIO KMS 服务进行身份认证的凭据。

静态密钥文件

Warning

这些设置用于在不依赖外部 KMS 的情况下,对对象服务端加密进行早期开发和评估。 不要在长期开发、QA 或生产环境中使用这些设置。 关于如何使用 MinIO Key Encryption Service (KES) 和外部 KMS 部署 SSE,请参见 使用 KES 进行服务端对象加密

提供静态 KMS 密钥或密钥文件用于加密。

MINIO_KMS_SECRET_KEY

静态 KMS 密钥的 base64 形式,格式为 <key-name>:<base64-32byte-key>。 实现了部分 KMS API。

MINIO_KMS_SECRET_KEY_FILE

读取静态 KMS 密钥的文件路径。