diff --git a/content/zh-cn/docs/tasks/administer-cluster/encrypt-data.md b/content/zh-cn/docs/tasks/administer-cluster/encrypt-data.md index b21dd4ed179..204169ddd1f 100644 --- a/content/zh-cn/docs/tasks/administer-cluster/encrypt-data.md +++ b/content/zh-cn/docs/tasks/administer-cluster/encrypt-data.md @@ -22,20 +22,29 @@ This page shows how to enable and configure encryption of secret data at rest. ## {{% heading "prerequisites" %}} -* {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} +* {{< include "task-tutorial-prereqs.md" >}} +* 此任务假设你将 Kubernetes API 服务器组件以{{< glossary_tooltip text="静态 Pod" term_id="static-pod" >}} + 方式运行在每个控制平面节点上。 + +* 集群的控制平面**必须**使用 etcd v3.x(主版本 3,任何次要版本)。 + -* 需要 etcd v3.0 或者更高版本 - * 要加密自定义资源,你的集群必须运行 Kubernetes v1.26 或更高版本。 -* 在 Kubernetes v1.27 或更高版本中可以使用通配符配置资源加密。 +* 在 Kubernetes v1.27 或更高版本中可以使用通配符匹配资源。 + +{{< version-check >}} @@ -122,7 +131,7 @@ resources: -{{< table caption="Kubernetes 静态数据加密的 Provider" >}} -名称 | 加密类型 | 强度 | 速度 | 密钥长度 | 其它事项 ------|------------|----------|-------|------------|--------------------- -`identity` | 无 | N/A | N/A | N/A | 不加密写入的资源。当设置为第一个 provider 时,资源将在新值写入时被解密。 -`secretbox` | XSalsa20 和 Poly1305 | 强 | 更快 | 32 字节 | 较新的标准,在需要高度评审的环境中可能不被接受。 -`aesgcm` | 带有随机数的 AES-GCM | 必须每 200k 写入一次 | 最快 | 16、24 或者 32字节 | 建议不要使用,除非实施了自动密钥循环方案。 -`aescbc` | 填充 [PKCS#7](https://datatracker.ietf.org/doc/html/rfc2315) 的 AES-CBC | 弱 | 快 | 32 字节 | 由于 CBC 容易受到密文填塞攻击(Padding Oracle Attack),不推荐使用。 -`kms v1` | 使用信封加密方案:数据使用带有 [PKCS#7](https://datatracker.ietf.org/doc/html/rfc2315) 填充的 AES-CBC(v1.25 之前),从 v1.25 开始使用 AES-GCM 通过数据加密密钥(DEK)加密,DEK 根据 Key Management Service(KMS)中的配置通过密钥加密密钥(Key Encryption Keys,KEK)加密 | 最强 | 快 | 32 字节 | 建议使用第三方工具进行密钥管理。为每个加密生成新的 DEK,并由用户控制 KEK 轮换来简化密钥轮换。从 `v1.27` 开始,该功能处于 Beta 阶段。系统在启动时生成一个新的 DEK 并重复使用它进行加密。当 KEK 被轮转时,DEK 也会被轮转。[配置 KMS V2 provider](/zh-cn/docs/tasks/administer-cluster/kms-provider#configuring-the-kms-provider-kms-v2)。 -{{< /table >}} +下表描述了每个可用的 Provider: + +
| 名称 | +加密类型 | +强度 | +速度 | +密钥长度 | +
|---|---|---|---|---|
| identity | +无 | +N/A | +N/A | +N/A | +
| + + 不加密写入的资源。当设置为第一个 provider 时,已加密的资源将在新值写入时被解密。 + | +||||
| aescbc | ++ + 带有 PKCS#7 填充的 AES-CBC + | +弱 | +快 | +32 字节 | +
| + + 由于 CBC 容易受到密文填塞攻击(Padding Oracle Attack),不推荐使用。密钥材料可从控制面主机访问。 + | +||||
| aesgcm | ++ + 带有随机数的 AES-GCM + | ++ + 每写入 200k 次后必须轮换 + | +最快 | +16、24 或者 32 字节 | +
| + + 不建议使用,除非实施了自动密钥轮换方案。密钥材料可从控制面主机访问。 + | +||||
| kms v1 | ++ + 针对每个资源使用不同的 DEK 来完成信封加密。 + | +最强 | +慢(与 kms V2 相比) | +32 字节 | +
|
+
+ 通过数据加密密钥(DEK)使用 AES-GCM 加密数据;
+ DEK 根据 Key Management Service(KMS)中的配置通过密钥加密密钥(Key Encryption Keys,KEK)加密。
+ 密钥轮换方式简单,每次加密都会生成一个新的 DEK,KEK 的轮换由用户控制。
+ + + 阅读如何配置 KMS V1 Provider + |
+ ||||
| kms v2 (beta) | ++ + 针对每个 API 服务器使用不同的 DEK 来完成信封加密。 + | +最强 | +快 | +32 字节 | +
|
+
+ 通过数据加密密钥(DEK)使用 AES-GCM 加密数据;
+ DEK 根据 Key Management Service(KMS)中的配置通过密钥加密密钥(Key Encryption Keys,KEK)加密。
+ API 服务器启动时会生成一个新的 DEK,并重复使用它进行加密。
+ 每当轮换 KEK 时,DEK 也会轮换。
+ 如果使用第三方工具进行密钥管理,会是一个不错的选择。
+ 从 `v1.27` 开始,该功能处于 Beta 阶段。
+ + + 阅读如何配置 KMS V2 Provider。 + |
+ ||||
| secretbox | +XSalsa20 和 Poly1305 | +强 | +更快 | +32 字节 | +
| + + 使用相对较新的加密技术,在需要高度评审的环境中可能不被接受。密钥材料可从控制面主机访问。 + | +||||