Skip to content

Commit e2eb64c

Browse files
authored
Merge pull request #44622 from sftim/20240103_revise_encryption_at_rest
Revise callouts in encryption-at-rest task page
2 parents 6dd5e89 + 085c4cd commit e2eb64c

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

content/en/docs/tasks/administer-cluster/encrypt-data.md

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,6 @@ you already have at-rest encryption enabled. However, that check does not tell y
7272
a previous migration to encrypted storage has succeeded. If you are not sure, see
7373
[ensure all relevant data are encrypted](#ensure-all-secrets-are-encrypted).
7474

75-
{{< caution >}}
76-
**IMPORTANT:** For high-availability configurations (with two or more control plane nodes), the
77-
encryption configuration file must be the same! Otherwise, the `kube-apiserver` component cannot
78-
decrypt data stored in the etcd.
79-
{{< /caution >}}
80-
8175
## Understanding the encryption at rest configuration
8276

8377
<!-- note to localizers: the highlight is to make the initial comment obvious -->
@@ -198,9 +192,12 @@ For more detailed information about the `EncryptionConfiguration` struct, please
198192
[encryption configuration API](/docs/reference/config-api/apiserver-encryption.v1/).
199193

200194
{{< caution >}}
201-
If any resource is not readable via the encryption config (because keys were changed),
202-
the only recourse is to delete that key from the underlying etcd directly. Calls that attempt to
203-
read that resource will fail until it is deleted or a valid decryption key is provided.
195+
If any resource is not readable via the encryption configuration (because keys were changed),
196+
and you cannot restore a working configuration, your only recourse is to delete that entry from
197+
the underlying etcd directly.
198+
199+
Any calls to the Kubernetes API that attempt to read that resource will fail until it is deleted
200+
or a valid decryption key is provided.
204201
{{< /caution >}}
205202

206203
### Available providers {#providers}
@@ -402,7 +399,7 @@ Generate a 32-byte random key and base64 encode it. You can use this command:
402399

403400

404401
{{< note >}}
405-
Keep the encryption key confidential, including whilst you generate it and
402+
Keep the encryption key confidential, including while you generate it and
406403
ideally even after you are no longer actively using it.
407404
{{< /note >}}
408405

@@ -508,6 +505,18 @@ Kubernetes cluster has multiple control plane hosts, so there is more to do.
508505
If you have multiple API servers in your cluster, you should deploy the
509506
changes in turn to each API server.
510507

508+
{{< caution >}}
509+
For cluster configurations with two or more control plane nodes, the encryption configuration
510+
should be identical across each control plane node.
511+
512+
If there is a difference in the encryption provider configuration between control plane
513+
nodes, this difference may mean that the kube-apiserver can't decrypt data.
514+
{{< /caution >}}
515+
516+
When you are planning to update the encryption configuration of your cluster, plan this
517+
so that the API servers in your control plane can always decrypt the stored data
518+
(even part way through rolling out the change).
519+
511520
Make sure that you use the **same** encryption configuration on each
512521
control plane host.
513522

0 commit comments

Comments
 (0)