14.2. Activation du chiffrement d'etcd
Vous pouvez activer le chiffrement etcd pour chiffrer les ressources sensibles de votre cluster.
Ne sauvegardez pas les ressources etcd tant que le processus de cryptage initial n'est pas terminé. Si le processus de chiffrement n'est pas terminé, la sauvegarde risque de n'être que partiellement chiffrée.
Après avoir activé le chiffrement d'etcd, plusieurs changements peuvent survenir :
- Le chiffrement d'etcd peut affecter la consommation de mémoire de quelques ressources.
- Il se peut que vous remarquiez un effet transitoire sur les performances de la sauvegarde, car le leader doit servir la sauvegarde.
- Une entrée/sortie de disque peut affecter le nœud qui reçoit l'état de sauvegarde.
Conditions préalables
-
Accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
.
Procédure
Modifier l'objet
APIServer
:$ oc edit apiserver
Définissez le type de champ
encryption
suraescbc
:spec: encryption: type: aescbc 1
- 1
- Le type
aescbc
signifie que le chiffrement est effectué par AES-CBC avec un remplissage PKCS#7 et une clé de 32 octets.
Enregistrez le fichier pour appliquer les modifications.
Le processus de cryptage démarre. Ce processus peut durer 20 minutes ou plus, en fonction de la taille de votre cluster.
Vérifiez que le chiffrement d'etcd a réussi.
Examinez la condition d'état
Encrypted
pour le serveur OpenShift API afin de vérifier que ses ressources ont été chiffrées avec succès :$ oc get openshiftapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'
La sortie indique
EncryptionCompleted
lorsque le cryptage a réussi :EncryptionCompleted All resources encrypted: routes.route.openshift.io
Si la sortie indique
EncryptionInProgress
, le cryptage est toujours en cours. Attendez quelques minutes et réessayez.Consultez la condition d'état
Encrypted
pour le serveur API Kubernetes afin de vérifier que ses ressources ont été chiffrées avec succès :$ oc get kubeapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'
La sortie indique
EncryptionCompleted
lorsque le cryptage a réussi :EncryptionCompleted All resources encrypted: secrets, configmaps
Si la sortie indique
EncryptionInProgress
, le cryptage est toujours en cours. Attendez quelques minutes et réessayez.Examinez l'état
Encrypted
pour le serveur OpenShift OAuth API afin de vérifier que ses ressources ont été chiffrées avec succès :$ oc get authentication.operator.openshift.io -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'
La sortie indique
EncryptionCompleted
lorsque le cryptage a réussi :EncryptionCompleted All resources encrypted: oauthaccesstokens.oauth.openshift.io, oauthauthorizetokens.oauth.openshift.io
Si la sortie indique
EncryptionInProgress
, le cryptage est toujours en cours. Attendez quelques minutes et réessayez.