@@ -179,15 +179,17 @@ resources:
179
179
<!--
180
180
Each `resources` array item is a separate config and contains a complete configuration. The
181
181
`resources.resources` field is an array of Kubernetes resource names (`resource` or `resource.group`)
182
-
that should be encrypted like Secrets, ConfigMaps, or other resources.
182
+
that should be encrypted like Secrets, ConfigMaps, or other resources.
183
183
184
-
If custom resources are added to `EncryptionConfiguration` and the cluster version is 1.26 or newer,
185
-
any newly created custom resources mentioned in the `EncryptionConfiguration` will be encrypted.
184
+
If custom resources are added to `EncryptionConfiguration` and the cluster version is 1.26 or newer,
185
+
any newly created custom resources mentioned in the `EncryptionConfiguration` will be encrypted.
186
186
Any custom resources that existed in etcd prior to that version and configuration will be unencrypted
187
187
until they are next written to storage. This is the same behavior as built-in resources.
188
188
See the [Ensure all secrets are encrypted](#ensure-all-secrets-are-encrypted) section.
189
189
190
190
The `providers` array is an ordered list of the possible encryption providers to use for the APIs that you listed.
191
+
Each provider supports multiple keys - the keys are tried in order for decryption, and if the provider
192
+
is the first provider, the first key is used for encryption.
191
193
-->
192
194
每个 `resources` 数组项目是一个单独的完整的配置。
193
195
`resources.resources` 字段是应加密的 Kubernetes 资源(例如 Secret、ConfigMap 或其他资源)名称
@@ -198,7 +200,9 @@ The `providers` array is an ordered list of the possible encryption providers to
198
200
在该版本之前存在于 etcd 中的任何自定义资源和配置不会被加密,直到它们被下一次写入到存储为止。
199
201
这与内置资源的行为相同。请参阅[确保所有 Secret 都已加密](#ensure-all-secrets-are-encrypted)一节。
200
202
201
-
`providers` 数组是可能的加密 provider 的有序列表,用于你所列出的 API。
203
+
`providers` 数组是可能的加密提供程序的有序列表,用于你所列出的 API。
204
+
每个提供程序支持多个密钥 - 解密时会按顺序尝试这些密钥,
205
+
如果这是第一个提供程序,其第一个密钥将被用于加密。
202
206
203
207
<!--
204
208
Only one provider type may be specified per entry (`identity` or `aescbc` may be provided,
@@ -208,10 +212,10 @@ resources from storage, each provider that matches the stored data attempts in o
208
212
data. If no provider can read the stored data due to a mismatch in format or secret key, an error
209
213
is returned which prevents clients from accessing that resource.
210
214
-->
211
-
每个条目只能指定一个 provider 类型(可以是 `identity` 或 `aescbc`,但不能在同一个项目中同时指定二者)。
212
-
列表中的第一个 provider 用于加密写入存储的资源。
213
-
当从存储器读取资源时,与存储的数据匹配的所有 provider 将按顺序尝试解密数据。
214
-
如果由于格式或密钥不匹配而导致没有 provider 能够读取存储的数据,则会返回一个错误,以防止客户端访问该资源。
215
+
每个条目只能指定一个提供程序类型(可以是 `identity` 或 `aescbc`,但不能在同一个项目中同时指定二者)。
216
+
列表中的第一个提供程序用于加密写入存储的资源。
217
+
当从存储器读取资源时,与存储的数据匹配的所有提供程序将按顺序尝试解密数据。
218
+
如果由于格式或密钥不匹配而导致没有提供程序能够读取存储的数据,则会返回一个错误,以防止客户端访问该资源。
215
219
216
220
<!--
217
221
`EncryptionConfiguration` supports the use of wildcards to specify the resources that should be encrypted.
@@ -244,7 +248,7 @@ The new item should look like this:
244
248
如果启用了通配符,但想要针对特定资源退出加密,则可以通过添加带有资源名称的新 `resources` 数组项,
245
249
后跟附带 `identity` 提供商的 `providers` 数组项。例如,如果启用了 “`*.*`”,
246
250
但想要排除对 `events` 资源的加密,则应向 `resources` 数组添加一个新项(以 `events` 为资源名称),
247
-
后跟包含 `identity` 的 providers 数组。新项应如下所示:
251
+
后跟包含 `identity` 的提供程序数组。新项应如下所示:
248
252
249
253
```yaml
250
254
- resources:
@@ -275,19 +279,26 @@ read that resource will fail until it is deleted or a valid decryption key is pr
275
279
任何尝试读取资源的调用将会失败,直到它被删除或提供有效的解密密钥。
276
280
{{< /caution >}}
277
281
278
-
### Provider
279
-
280
282
<!--
281
-
The following table describes each available provider:
283
+
### Available providers {#providers}
284
+
285
+
Before you configure encryption-at-rest for data in your cluster's Kubernetes API, you
286
+
need to select which provider(s) you will use.
287
+
288
+
The following table describes each available provider.
282
289
-->
283
-
下表描述了每个可用的 Provider:
290
+
### 可用的提供程序 {#providers}
291
+
292
+
在为集群的 Kubernetes API 数据配置静态加密之前,你需要选择要使用的提供程序。
293
+
294
+
下表描述了每个可用的提供程序:
284
295
285
296
<table class="complex-layout">
286
297
<caption style="display: none;">
287
298
<!--
288
299
Providers for Kubernetes encryption at rest
289
300
-->
290
-
Kubernetes 静态数据加密的 Provider
301
+
Kubernetes 静态数据加密的提供程序
291
302
</caption>
292
303
<thead>
293
304
<tr>
@@ -313,7 +324,7 @@ Kubernetes 静态数据加密的 Provider
313
324
Resources written as-is without encryption. When set as the first provider, the resource will be decrypted as new values are written. Existing encrypted resources are <strong>not</strong> automatically overwritten with the plaintext data.
314
325
The <tt>identity</tt> provider is the default if you do not specify otherwise.
315
326
-->
316
-
不加密写入的资源。当设置为第一个 provider 时,已加密的资源将在新值写入时被解密。
327
+
不加密写入的资源。当设置为第一个提供程序时,已加密的资源将在新值写入时被解密。
317
328
</td>
318
329
</tr>
319
330
</tbody>
@@ -391,7 +402,7 @@ Kubernetes 静态数据加密的 Provider
391
402
<!--
392
403
Read how to <a href="/docs/tasks/administer-cluster/kms-provider#configuring-the-kms-provider-kms-v1">configure the KMS V1 provider</a>.
393
404
-->
394
-
阅读如何<a href="/zh-cn/docs/tasks/administer-cluster/kms-provider#configuring-the-kms-provider-kms-v1">配置 KMS V1 Provider</a>
405
+
阅读如何<a href="/zh-cn/docs/tasks/administer-cluster/kms-provider#configuring-the-kms-provider-kms-v1">配置 KMS V1 提供程序</a>
395
406
</td>
396
407
</tr>
397
408
<tr>
@@ -434,7 +445,7 @@ Kubernetes 静态数据加密的 Provider
434
445
<!--
435
446
Read how to <a href="/docs/tasks/administer-cluster/kms-provider#configuring-the-kms-provider-kms-v2">configure the KMS V2 provider</a>.
436
447
-->
437
-
阅读如何<a href="/zh-cn/docs/tasks/administer-cluster/kms-provider#configuring-the-kms-provider-kms-v2">配置 KMS V2 Provider</a>。
448
+
阅读如何<a href="/zh-cn/docs/tasks/administer-cluster/kms-provider#configuring-the-kms-provider-kms-v2">配置 KMS V2 提供程序</a>。
438
449
</td>
439
450
</tr>
440
451
<tr>
@@ -456,53 +467,78 @@ Kubernetes 静态数据加密的 Provider
456
467
</table>
457
468
458
469
<!--
459
-
Each provider supports multiple keys - the keys are tried in order for decryption, and if the provider
460
-
is the first provider, the first key is used for encryption.
470
+
The `identity` provider is the default if you do not specify otherwise. **The `identity` provider does not
471
+
encrypt stored data and provides _no_ additional confidentiality protection.**
461
472
-->
462
-
每个 Provider 都支持多个密钥 - 在解密时会按顺序使用密钥,如果是第一个 Provider,则第一个密钥用于加密。
473
+
如果你没有另外指定,`identity` 提供程序将作为默认选项。
474
+
**`identity` 提供程序不会加密存储的数据,并且提供无附加的机密保护。**
463
475
464
-
{{< caution >}}
465
476
<!--
466
-
Storing the raw encryption key in the EncryptionConfig only moderately improves your security
467
-
posture, compared to no encryption. Please use `kms` provider for additional security.
468
-
-->
469
-
在 EncryptionConfig 中保存原始的加密密钥与不加密相比只会略微地提升安全级别。
470
-
请使用 `kms` 驱动以获得更强的安全性。
471
-
{{< /caution >}}
477
+
### Key storage
472
478
473
-
<!--
474
-
By default, the `identity` provider is used to protect secret data in etcd, which provides no
475
-
encryption. `EncryptionConfiguration` was introduced to encrypt secret data locally, with a locally
476
-
managed key.
479
+
#### Local key storage
477
480
478
481
Encrypting secret data with a locally managed key protects against an etcd compromise, but it fails to
479
482
protect against a host compromise. Since the encryption keys are stored on the host in the
480
483
EncryptionConfiguration YAML file, a skilled attacker can access that file and extract the encryption
481
484
keys.
485
+
-->
486
+
### 密钥存储 {#key-storage}
487
+
488
+
#### 本地密钥存储 {#local-key-storage}
482
489
483
-
Envelope encryption creates dependence on a separate key, not stored in Kubernetes. In this case,
484
-
an attacker would need to compromise etcd, the `kubeapi-server`, and the third-party KMS provider to
485
-
retrieve the plaintext values, providing a higher level of security than locally stored encryption keys.
490
+
使用本地管理的密钥对 Secret 数据进行加密可以防止 etcd 受到威胁,但无法防范主机受到威胁的情况。
491
+
由于加密密钥被存储在主机上的 EncryptionConfiguration YAML 文件中,有经验的攻击者可以访问该文件并提取加密密钥。
492
+
493
+
<!--
494
+
#### Managed (KMS) key storage {#kms-key-storage}
495
+
496
+
The KMS provider uses _envelope encryption_: Kubernetes encrypts resources using a data key, and then
497
+
encrypts that data key using the managed encryption service. Kubernetes generates a unique data key for
498
+
each resource. The API server stores an encrypted version of the data key in etcd alongside the ciphertext;
499
+
when reading the resource, the API server calls the managed encryption service and provides both the
500
+
ciphertext and the (encrypted) data key.
501
+
Within the managed encryption service, the provider use a _key encryption key_ to decipher the data key,
502
+
deciphers the data key, and finally recovers the plain text. Communication between the control plane
503
+
and the KMS requires in-transit protection, such as TLS.
486
504
-->
487
-
默认情况下,`identity` 驱动被用来对 etcd 中的 Secret 数据提供保护,而这个驱动不提供加密能力。
488
-
`EncryptionConfiguration` 的引入是为了能够使用本地管理的密钥来在本地加密 Secret 数据。
505
+
#### 托管的(KMS)密钥存储 {#kms-key-storage}
489
506
490
-
使用本地管理的密钥来加密 Secret 数据能够保护数据免受 etcd 破坏的影响,不过无法针对主机被侵入提供防护。
491
-
这是因为加密的密钥保存在主机上的 EncryptionConfig YAML 文件中,
492
-
有经验的入侵者仍能访问该文件并从中提取出加密密钥。
507
+
KMS 提供程序使用**封套加密**:Kubernetes 使用一个数据密钥来加密资源,然后使用托管的加密服务来加密该数据密钥。
508
+
Kubernetes 为每个资源生成唯一的数据密钥。API 服务器将数据密钥的加密版本与密文一起存储在 etcd 中;
509
+
API 服务器在读取资源时,调用托管的加密服务并提供密文和(加密的)数据密钥。
510
+
在托管的加密服务中,提供程序使用**密钥加密密钥**来解密数据密钥,解密数据密钥后恢复为明文。
511
+
在控制平面和 KMS 之间的通信需要在传输过程中提供 TLS 这类保护。
493
512
494
-
封套加密(Envelope Encryption)引入了对独立密钥的依赖,而这个密钥并不保存在 Kubernetes 中。
495
-
在这种情况下,入侵者需要攻破 etcd、kube-apiserver 和第三方的 KMS
496
-
驱动才能获得明文数据,因而这种方案提供了比本地保存加密密钥更高的安全级别。
513
+
<!--
514
+
Using envelope encryption creates dependence on the key encryption key, which is not stored in Kubernetes.
515
+
In the KMS case, an attacker who intends to get unauthorised access to the plaintext
516
+
values would need to compromise etcd **and** the third-party KMS provider.
517
+
-->
518
+
使用封套加密会依赖于密钥加密密钥,此密钥不存储在 Kubernetes 中。
519
+
就 KMS 而言,如果攻击者意图未经授权地访问明文值,则需要同时入侵 etcd **和** 第三方 KMS 提供程序。
497
520
498
521
<!--
499
-
## Encrypting your data
522
+
## Write an encryption configuration file
523
+
-->
524
+
## 编辑加密配置文件 {#write-an-encryption-configuration-file}
500
525
501
-
Create a new encryption config file:
526
+
{{< caution >}}
527
+
<!--
528
+
The encryption configuration file may contain keys that can decrypt content in etcd.
529
+
If the configuration file contains any key material, you must properly
530
+
restrict permissions on all your control plane hosts so only the user
531
+
who runs the kube-apiserver can read this configuration.
502
532
-->
503
-
## 加密你的数据 {#encrypting-you-data}
533
+
加密配置文件可能包含可以解密 etcd 中内容的密钥。
534
+
如果此配置文件包含任何密钥信息,你必须在所有控制平面主机上合理限制权限,
535
+
以便只有运行 kube-apiserver 的用户可以读取此配置。
536
+
{{< /caution >}}
504
537
505
-
创建一个新的加密配置文件:
538
+
<!--
539
+
Create a new encryption configuration file. The contents should be similar to:
540
+
-->
541
+
创建一个新的加密配置文件。其内容应类似于:
506
542
507
543
<!--
508
544
# See the following text for more details about the secret value
@@ -808,7 +844,7 @@ When running a single `kube-apiserver` instance, step 2 may be skipped.
808
844
在不发生停机的情况下更改 Secret 需要多步操作,特别是在有多个 `kube-apiserver`
809
845
进程正在运行的高可用环境中。
810
846
811
-
1. 生成一个新密钥并将其添加为所有服务器上当前 provider 的第二个密钥条目
847
+
1. 生成一个新密钥并将其添加为所有服务器上当前提供程序的第二个密钥条目
812
848
1. 重新启动所有 `kube-apiserver` 进程以确保每台服务器都可以使用新密钥进行解密
813
849
1. 将新密钥设置为 `keys` 数组中的第一个条目,以便在配置中使用其进行加密
814
850
1. 重新启动所有 `kube-apiserver` 进程以确保每个服务器现在都使用新密钥进行加密
@@ -826,7 +862,7 @@ and restart all `kube-apiserver` processes.
826
862
-->
827
863
## 解密所有数据 {#decrypting-all-data}
828
864
829
-
要禁用静态加密,请将 `identity` provider
865
+
要禁用静态加密,请将 `identity` 提供程序
830
866
作为配置中的第一个条目并重新启动所有 `kube-apiserver` 进程。
831
867
832
868
```yaml
@@ -883,6 +919,8 @@ To allow automatic reloading, configure the API server to run with:
883
919
## {{% heading "whatsnext" %}}
884
920
885
921
<!--
922
+
* Read about [decrypting data that are already stored at rest](/docs/tasks/administer-cluster/decrypt-data/)
886
923
* Learn more about the [EncryptionConfiguration configuration API (v1)](/docs/reference/config-api/apiserver-encryption.v1/).
887
924
-->
888
-
进一步学习 [EncryptionConfiguration 配置 API (v1)](/zh-cn/docs/reference/config-api/apiserver-encryption.v1/)。
925
+
* 进一步学习[解密已静态加密的数据](/zh-cn/docs/tasks/administer-cluster/decrypt-data/)。
926
+
* 进一步学习 [EncryptionConfiguration 配置 API (v1)](/zh-cn/docs/reference/config-api/apiserver-encryption.v1/)。
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4