From 0770e2bcab136044d382bf5ec078271b1667e08e Mon Sep 17 00:00:00 2001 From: Zhuzhenghao Date: Thu, 11 May 2023 21:28:55 +0800 Subject: [PATCH] [zh] resync page encrypt-data --- .../tasks/administer-cluster/encrypt-data.md | 192 +++++++++++++++--- 1 file changed, 166 insertions(+), 26 deletions(-) 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +Kubernetes 静态数据加密的 Provider +
名称加密类型强度速度密钥长度
identityN/AN/AN/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。 +
secretboxXSalsa20 和 Poly1305更快32 字节
+ + 使用相对较新的加密技术,在需要高度评审的环境中可能不被接受。密钥材料可从控制面主机访问。 +