|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
k3s secrets-encrypt
K3s admite la habilitación de la encriptación de secretos en reposo. Para más información, consulta Encriptación de Secretos.
Herramienta de Encriptación de Secretos
|
Puerta de Versión
Disponible a partir de v1.21.8+k3s1 |
K3s contiene una herramienta CLI secrets-encrypt, que permite el control automático sobre lo siguiente:
-
Deshabilitar/Habilitar la encriptación de secretos
-
Añadir nuevas claves de encriptación
-
Rotar y eliminar claves de encriptación
-
Reencriptar secretos
|
No seguir el procedimiento adecuado para rotar las claves de encriptación puede dejar tu clúster permanentemente dañado. Procede con precaución. |
Rotación de Claves de Encriptación
|
Puerta de Versión
Disponible a partir de las versiones de septiembre de 2024: v1.30.5+k3s1, v1.31.1+k3s1. |
-
Servidor Único
-
Alta disponibilidad
Para rotar las claves de encriptación de secretos en un clúster de servidor único:
-
Inicia el servidor K3s con la bandera
--secrets-encryptionIniciar K3s sin encriptación y habilitarlo en un momento posterior no está actualmente soportado.
-
Rotar las claves de encriptación de secretos
k3s secrets-encrypt rotate-keys
-
Espera a que termine la reencriptación. Observa los registros del servidor, o espera a:
$ k3s secrets-encrypt status Encryption Status: Enabled Current Rotation Stage: reencrypt_finished
Para rotar las claves de encriptación de secretos en configuraciones de alta disponibilidad:
-
Inicia los tres servidores K3s con la bandera
--secrets-encryption. Por brevedad, los servidores se denominarán S1, S2, S3.Iniciar K3s sin encriptación y habilitarlo en un momento posterior no está actualmente soportado.
-
Rotar las claves de encriptación de secretos en S1
k3s secrets-encrypt rotate-keys -
Espera a que termine la reencriptación. Observa los registros del servidor, o espera a:
$ k3s secrets-encrypt status Encryption Status: Enabled Current Rotation Stage: reencrypt_finishedK3s reencriptará ~5 secretos por segundo. Los clústeres con un gran número de secretos pueden tardar varios minutos en reencriptarse. Puedes seguir el progreso en los registros del servidor.
-
Reinicia K3s en S1 con los mismos argumentos. Si ejecutas K3s como un servicio:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Una vez que S1 esté en funcionamiento, reinicia K3s en S2 y S3
Rotación de claves de encriptación heredadas
|
Nuevo procedimiento
Si utilizas versiones de K3s v1.30+, recomendamos usar la Rotación de Claves de Encriptación en su lugar. |
-
Servidor Único
-
Alta disponibilidad
Para rotar las claves de encriptación de secretos en un clúster de servidor único:
-
Inicia el servidor K3s con la bandera
--secrets-encryptionIniciar K3s sin encriptación y habilitarlo en un momento posterior no está actualmente soportado.
-
Preparación
k3s secrets-encrypt prepare -
Mata y reinicia el servidor K3s con los mismos argumentos. Si ejecutas K3s como un servicio:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Rotar
k3s secrets-encrypt rotate -
Mata y reinicia el servidor K3s con los mismos argumentos
-
Reencriptar
K3s reencriptará ~5 secretos por segundo.
Los clústeres con un gran número de secretos pueden tardar varios minutos en reencriptarse.k3s secrets-encrypt reencrypt
Los pasos son los mismos tanto para las bases de datos embebidas como para los clústeres de bases de datos externas.
Para rotar las claves de encriptación de secretos en configuraciones de alta disponibilidad:
-
Inicia los tres servidores K3s con la bandera
--secrets-encryption. Por brevedad, los servidores se denominarán S1, S2, S3.-
Iniciar K3s sin encriptación y habilitarlo en un momento posterior no está actualmente soportado.
-
Aunque no es obligatorio, se recomienda que elijas un nodo de servidor desde el cual ejecutar los comandos
secrets-encrypt.
-
-
Preparar en S1
k3s secrets-encrypt prepare -
Matar y reiniciar S1 con los mismos argumentos. Si ejecutas K3s como un servicio:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Una vez que S1 esté en funcionamiento, matar y reiniciar S2 y S3
-
Rotar en S1
k3s secrets-encrypt rotate -
Matar y reiniciar S1 con los mismos argumentos
-
Una vez que S1 esté en funcionamiento, matar y reiniciar S2 y S3
-
Reencriptar en S1
K3s reencriptará ~5 secretos por segundo.
Los clústeres con un gran número de secretos pueden tardar varios minutos en reencriptarse.k3s secrets-encrypt reencrypt -
Matar y reiniciar S1 con los mismos argumentos
-
Una vez que S1 esté en funcionamiento, matar y reiniciar S2 y S3
Desactivar/volver a activar la encriptación de secretos
-
Servidor Único
-
Alta disponibilidad
Después de lanzar un servidor con la bandera --secrets-encryption, se puede desactivar la encriptación de secretos.
Para desactivar la encriptación de secretos en un clúster de un solo nodo:
-
Desactivar
k3s secrets-encrypt disable -
Mata y reinicia el servidor K3s con los mismos argumentos. Si ejecutas K3s como un servicio:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Reencriptar con banderas
k3s secrets-encrypt reencrypt --force --skip
Para volver a activar la encriptación de secretos en un clúster de un solo nodo:
-
Habilitar
k3s secrets-encrypt enable -
Mata y reinicia el servidor K3s con los mismos argumentos
-
Reencriptar con banderas
k3s secrets-encrypt reencrypt --force --skip
Después de lanzar un clúster de alta disponibilidad con las banderas --secrets-encryption, se puede desactivar la encriptación de secretos.
|
Aunque no es obligatorio, se recomienda que elijas un nodo de servidor desde el cual ejecutar los comandos |
Por brevedad, los tres servidores utilizados en esta guía se denominarán S1, S2, S3.
Para desactivar la encriptación de secretos en un clúster de alta disponibilidad:
-
Desactivar en S1
k3s secrets-encrypt disable -
Matar y reiniciar S1 con los mismos argumentos. Si ejecutas K3s como un servicio:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Una vez que S1 esté en funcionamiento, matar y reiniciar S2 y S3
-
Reencriptar con banderas en S1
k3s secrets-encrypt reencrypt --force --skip
Para volver a activar la encriptación de secretos en un clúster de alta disponibilidad:
-
Habilitar en S1
k3s secrets-encrypt enable -
Matar y reiniciar S1 con los mismos argumentos
-
Una vez que S1 esté en funcionamiento, matar y reiniciar S2 y S3
-
Reencriptar con banderas en S1
k3s secrets-encrypt reencrypt --force --skip
Estado de encriptación de secretos
La herramienta de encriptación de secretos incluye un comando status que muestra información sobre el estado actual de la encriptación de secretos en el nodo.
Un ejemplo del comando en un nodo de un solo servidor:
$ k3s secrets-encrypt status
Encryption Status: Enabled
Current Rotation Stage: start
Server Encryption Hashes: All hashes match
Active Key Type Name
------ -------- ----
* AES-CBC aescbckey
Otro ejemplo en un clúster de alta disponibilidad, después de rotar las claves, pero antes de reiniciar los servidores:
$ k3s secrets-encrypt status
Encryption Status: Enabled
Current Rotation Stage: rotate
Server Encryption Hashes: hash does not match between node-1 and node-2
Active Key Type Name
------ -------- ----
* AES-CBC aescbckey-2021-12-10T22:54:38Z
AES-CBC aescbckey
Los detalles de cada sección son los siguientes:
-
Estado de encriptación: Se muestra si la encriptación de secretos está deshabilitada o habilitada en el nodo
-
Etapa de rotación actual: Indica la etapa de rotación actual en el nodo.
Las etapas son:start,prepare,rotate,reencrypt_request,reencrypt_active,reencrypt_finished -
Hash de encriptación del servidor: Útil para clústeres HA, esto indica si todos los servidores están en la misma etapa con sus archivos locales. Esto se puede usar para identificar si se requiere un reinicio de los servidores antes de proceder a la siguiente etapa. En el ejemplo de HA anterior, el nodo-1 y el nodo-2 tienen hashes diferentes, lo que indica que actualmente no tienen la misma configuración de encriptación. Reiniciar los servidores sincronizará su configuración.
-
Tabla de claves: Resume la información sobre las claves de encriptación de secretos encontradas en el nodo.
-
Activo: El "*" indica cuáles, si los hay, de las claves se utilizan actualmente para la encriptación de secretos. Una clave activa es utilizada por Kubernetes para cifrar cualquier nuevo secreto.
-
Tipo de clave: Todas las claves que utilizan esta herramienta son de tipo
AES-CBC. Consulta más información aquí. -
Nombre: Nombre de la clave de encriptación.
-